20 Nov, 2014
9 commits
-
…nsure that invalid JWT sessions are expired git-svn-id: https://svn.forgerock.org/openig/trunk@740 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
Timer values should always be obtained through `timer` decorations. git-svn-id: https://svn.forgerock.org/openig/trunk@739 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@738 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
This patch adds an appendix that briefly describes and demonstrates how OpenIG as a SAML 2.0 SP can support more than one application. For future consideration I have also opened some issues that might make this easier: OPENIG-397, but also OPENIG-399, OPENIG-400. git-svn-id: https://svn.forgerock.org/openig/trunk@737 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
The audit framework is a new OpenIG API that gives to users a deeper view (and probably a better understanding) of what's going on in the observed OpenIG system. This is an initial version of the audit framework that only supports `Exchange` flow observation: Filters and Handlers will send `AuditEvent` notifications both when an Exchange enters or exists. An `AuditEvent` is a notification that includes meta-information about the observed component emitter of the notification (its `Name` in particular), a timestamp, the exchange being captured and a set of tags that helps to qualify the event. Four tags are supported out-of-the-box: `request`, `response`, `completed` and `exception`. The user can add as many tags as wanted as part of the decoration configuration: "audit": "route-#1" // add a single tag to the decorated component "audit": [ "super-tag", "route-#2" ] // add all of theses tags "audit": boolean, object, ... // any other format will be ignored OpenIG provides a single `audit` decorator by default. Consumers of AuditEvent are `AuditEventListener`, they have to provide their own Heaplet implementation that extends `ConditionalListenerHeaplet`. They'll be automatically notified of emitted AuditEvents and can (optionally) filter the received event using the `condition` configuration attribute (condition is expressed as an `Expression` that needs to evaluate to a boolean). Examples of such event-filtering conditions: ${true} ${contains(tags, 'tag#1')} ${source.name.leaf == 'source'} git-svn-id: https://svn.forgerock.org/openig/trunk@736 dbb9e58e-28e6-4ce0-90e8-f11d9605b710 -
The Client filter heavily use the `exchange.request.uri` property to compute URIs. That was causing issues because, in the set of upstream filters/handlers, someone could have rebased the request URI (usually to globally 'redirect' the message to the protected application). That was causing wrong URI computations (like an OAuth2 `redirect_uri` with the hostname of the protected application, instead of the user-facing one of OpenIG). This changes fix this behaviour with the introduction of an immutable `exchange.originalUri` property that is the original request URI, as received by the web container. The Client filter is now using this instead of the mutable one (`exchange.request.uri`). Updated the Nascar page sample of the documentation to limit copy/paste errors. git-svn-id: https://svn.forgerock.org/openig/trunk@735 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@734 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
only used by the Client Server and to uniformize the message with the OAuth2ResourceFilter. git-svn-id: https://svn.forgerock.org/openig/trunk@733 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
expressions. OAuth2ResourceServerFilter.java - Replaced 'Set<String> scopes' to 'List<Expression> scopes'. - As the AccessToken defines scopes as Set<String>, added a new method to getScopes from List<Expression> to Set<String>. - InsufficientScopeChallengeHandler is no longer a field of the OAuth2ResourceServerFilter. - Added realm attribute to the OAuth2ResourceServerFilter. OAuth2ResourceServerFilterTest.java - Fixed tests according to the above modifications. - Added unit tests with expression evaluations. man-OAuth2ResourceServerFilter.xml - Modified doc according to Mark's patch. git-svn-id: https://svn.forgerock.org/openig/trunk@732 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
19 Nov, 2014
3 commits
-
* also added test to ensure that it is possible to inline a route's handler and avoid the need for a heap. git-svn-id: https://svn.forgerock.org/openig/trunk@730 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@725 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@724 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
18 Nov, 2014
3 commits
-
git-svn-id: https://svn.forgerock.org/openig/trunk@723 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
Updated version of json-fluent and json-web-token from 2.3.2 to 2.4.1 new release. Thanks to Bruno! \o/ git-svn-id: https://svn.forgerock.org/openig/trunk@722 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
- Renamed files - Fixed javadoc. - Fixed doc. - Thanks to Mark for his patch on chap-compatibility. git-svn-id: https://svn.forgerock.org/openig/trunk@719 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
17 Nov, 2014
2 commits
-
* updated all tests and default config * issue deprecation warning if heap/objects field is still used. git-svn-id: https://svn.forgerock.org/openig/trunk@718 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@717 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
15 Nov, 2014
1 commit
-
git-svn-id: https://svn.forgerock.org/openig/trunk@716 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
14 Nov, 2014
3 commits
-
git-svn-id: https://svn.forgerock.org/openig/trunk@705 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@704 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@703 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
13 Nov, 2014
2 commits
-
- Changed the default cipher algorithm from "DES/ECB/NoPadding" to "AES/ECB/PKCS5Padding". - Modified/added unit tests according to the new selected default cipher. - Updated javadoc. git-svn-id: https://svn.forgerock.org/openig/trunk@702 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@701 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
12 Nov, 2014
4 commits
-
git-svn-id: https://svn.forgerock.org/openig/trunk@700 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
A `StackOverFlowError` can be thrown during the Heap init when the configuration file declare global decorators that have a heap object dependency. When the globally enabled decorator is first created, it tries to resolve a dependency from the heap, the heap then tries to decorate that instance, looking for the globally declared decorator, that is not yet available since it has not finished its initialization, so the heap think the decorator instance was not created yet and triggers another decorator instance creation, that will itself try to resolve the dependency, looping again and again ad nauseam. The framework cannot provide any guards against that problem right now, the decorators implementers have to care of this on their own and carefully craft their decorators to avoid that problem. The framework can only provide some limited level of support to help developers not hitting that issue. Introduced a new `DecoratorHeaplet` abstract class that does not resolve automatically heap objects at creation time (no `LogSink` and `TemporaryStorage` resolution, as opposed to `GenericHeaplet` behaviour). Introduced a `LazyReference<T>` that encapsulate the resolution logic to allow easy heap object resolution delaying. Decorator implementation are encouraged to use theses 2 classes (having their `Heaplet` extending `DecoratorHeaplet` instead of `GenericHeaplet`) and using `LazyReference` when a heap object dependency is un-avoidable. Moved `CaptureDecorator` to use the `LazyReference` and updated existing decorator's heaplet to extend `DecoratorHeaplet`. Updated javadoc to make that clear for Decorator implementers. git-svn-id: https://svn.forgerock.org/openig/trunk@699 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@698 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@697 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
10 Nov, 2014
1 commit
-
git-svn-id: https://svn.forgerock.org/openig/trunk@696 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
07 Nov, 2014
9 commits
-
Wrong charset used in Entity class - Added static UTF_8 Charset. - Replaced newDecodedContentReader(null) by newDecodedContentReader(UTF_8) in entity#getJson. git-svn-id: https://svn.forgerock.org/openig/trunk@695 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
Without this change, the OAuth 2.0 Client Filter triggers the retrieval of the user info resource for each request that is intercepted. It's a problem for Identity Providers such as Google that have an allowed quota of request/sec, because of the sudden burst of user info request. This is even worse than that because sometimes, the intercepted request may not even need to use theses information (think of OpenIG intercepting an image served by the protected application and returned as-is) ... This fix includes both a user-info resources caching for a few seconds (the time for all requests to load a web page to be executed) and a lazy loading of the resource (triggered the first time a downstream filter/handler access the `user_info` structure). By default, resources are kept for 20 seconds after the first access. Like for OAuth2ResourceServerFilter, you can disable that cache with `"cacheExpiration": "disabled"` in the configuration. git-svn-id: https://svn.forgerock.org/openig/trunk@694 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
This takes advantage of the new zero-length Duration support. If the configuration express `zero`, `disabled` or any `0 <timeunit>`, the access token cache will be disabled. git-svn-id: https://svn.forgerock.org/openig/trunk@693 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
That will be useful to support deactivation marker values when configuring cache timeouts. This fix support both `zero` and `disabled` as zero-length Duration markers. When the parsed String value also represents a zero-length duration (like `0 days and 0 ms`), the special ZERO marker duration is returned. Updated documentation as well. git-svn-id: https://svn.forgerock.org/openig/trunk@692 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@691 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@690 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
In order to facilitate OPENIG-370 (log simplification), we now expose the Name of the log source to the Logger. This has a number of implications: * `LogEntry.source` has been splited into the `source` and `type` attributes. source being the original Name and type being the type of the entry (like `log`, `started`, `elapsed`, ...). Log messages have the `log` type and exception's messages have the `throwable` type. * Logger is no more a LogSink implementation * LogEntry has been adapted to directly use Logger instead of LogSink (this way it can benefit of the Logger.source attribute's value automatically) * Logger do not "rebase" the source name anymore: can't do that since source is not a String anymore. * That solves the source duplication issue of OPENIG-370 LogSink interface has been adapted to have a source Name instead of a source String when trying to determine if something is legible. LogSink implementations (ConsoleLogSink and FileLogSink) have been changed to keep an output as close as possible as what we have previously (don't want to work on OPEN-370 yet). git-svn-id: https://svn.forgerock.org/openig/trunk@689 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
A Name is a recursive object based on a leaf name and a parent Name. Each Heap as a unique Name used to scope names of the managed heap objects. Each heap object has a unique Name whose parent is the container Heap. The Heaplet interface has been updated to give the Name instead of just a String. The name of each created heap is based on the resource name. git-svn-id: https://svn.forgerock.org/openig/trunk@688 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@687 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
06 Nov, 2014
2 commits
-
git-svn-id: https://svn.forgerock.org/openig/trunk@686 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
Since forgerock-parent 1.2.6, we need to specify that property in addition to `maven.compiler.target`. IntelliJ can now import the project properly (using Java 6 style instead of Java 5 for code). git-svn-id: https://svn.forgerock.org/openig/trunk@685 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
05 Nov, 2014
1 commit
-
git-svn-id: https://svn.forgerock.org/openig/trunk@684 dbb9e58e-28e6-4ce0-90e8-f11d9605b710