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
07 Nov, 2014
2 commits
-
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
04 Nov, 2014
1 commit
-
When capturing the exchange's content, we're using JsonOutput with a Map view of the Exchange. It happens that this view, because of the FieldMap stuff, only includes exchange's public fields. It looks like this is not an issue for Expressions. We'll fix all of theses public properties at once git-svn-id: https://svn.forgerock.org/openig/trunk@677 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
30 Oct, 2014
3 commits
-
The CaptureDecorator can now be configured to additionally capture the content of the Exchange being intercepted. If specified, it will print the full content of the Exchange instance, excluding the `response` and the `request` since they should be captured by another mean. The output contains a deep view of the exchange obtained through introspection of the class structure (this is done by the Groovy JsonOutput class). It appears that this class doesn't support cycles very well, so, depending on the content of the exchange, it may throw exceptions. By default we're doing our best to remove known cycles. By default (in the system provided `capture` decorator), this option is disabled since it adds a lot of cruft in the logs. git-svn-id: https://svn.forgerock.org/openig/trunk@672 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
…nfigured in the config.json Instead of creating manually the HttpClient instance and giving it the (also manually) created TemporaryStorage instance, we now declare an equivalent object declaration in the heap, letting the HttpClient heaplet resolves properly its dependencies. git-svn-id: https://svn.forgerock.org/openig/trunk@670 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@668 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
23 Oct, 2014
1 commit
-
The timer decorator factorize some very common code in all of our filters handlers: LogTimer timer = logger.getTimer().start() /// ... timer.stop() git-svn-id: https://svn.forgerock.org/openig/trunk@646 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
21 Oct, 2014
2 commits
-
git-svn-id: https://svn.forgerock.org/openig/trunk@639 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@638 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
15 Oct, 2014
2 commits
-
Consider using Jackson for parsing the JSON configuration - Renamed JsonValueUtil to Json. - Renamed JsonValueUtilTest to JsonTest. git-svn-id: https://svn.forgerock.org/openig/trunk@622 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
configuration - Remove json simple from openig pom file configuration. (added com.fasterxml.jackson.core / databind) - Jackson throws now IOExceptions instead of json exceptions. - Added unit tests. - Fixed javadoc. git-svn-id: https://svn.forgerock.org/openig/trunk@621 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
15 Sep, 2014
4 commits
-
git-svn-id: https://svn.forgerock.org/openig/trunk@574 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
It was misplaced in the openig-core module where it was used in openig-war module. git-svn-id: https://svn.forgerock.org/openig/trunk@573 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
Heap.get(String):Object gains type safety Heap.get(String, Class<T>):T Heap.getRequiredObject(JsonValue, Class<T>) has a shorter name Heap.resolve(JsonValue, Class<T>):T Heap.getObject(JsonValue, Class<T>) is replaced by a resolve variant that supports optional dependencies: Heap.resolve(JsonValue, Class<T>, boolean):T git-svn-id: https://svn.forgerock.org/openig/trunk@572 dbb9e58e-28e6-4ce0-90e8-f11d9605b710 -
Inline object declarations are a mean to ease understanding of Exchange processing. They permit to describe anonymously, inner objects when a reference to another heap object is required. That introduce, in the configuration files, some hierarchical support, easing the user to mentally represents his processing chain. This is done in a fully backward compatible way, without requiring any changes to existing object declarations (the one that requires other objects through references or names). The idea is to automatically extract inline declaration when the Heaplet is calling the get***Object() methods: if the provided JsonValue is a String, traditional object lookup is performed, but when the JsonValue represents a JSONObject (a Map), we try to turn this into a normal object declaration (just like what is done during heap initialisation). If the given JsonValue does not describe a valid declaration, a JsonValueException is thrown (again, just like the heap init process is doing). Notice that inline declarations do not require a 'name' attribute to be specified (like anonymous Java classes), so we generate a unique name based on the JsonPointer (represents the location of the node in the JSON structure). Notice that OPENIG-316 is partly resolved in this commit: HeapUtil methods have only been moved into the Heap interface: no additional type safety, no renaming. git-svn-id: https://svn.forgerock.org/openig/trunk@571 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
10 Sep, 2014
2 commits
-
git-svn-id: https://svn.forgerock.org/openig/trunk@566 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
OpenIG used to provide a default Session implementation based on the underlying Servlet container's HttpSession. This changeset intends to gives to the user the ability to change the session persistence strategy (in other words: changing the Session implementation). This can be done at the global level (in the config.json, declaring a SessionFactory object named 'Session') or on a per-route basis (with the new 'session' attribute). When an Exchanges comes into a route that declares a new session type, a new session is build (no existing session items are propagated) and replace the old session. When the exchange exits the route, the new session is closed (notify the session that it's time to persist its content) and is replaced by the old one. Really like a push/pop stack mechanism. Notice that the 2 sessions are completely separated (cannot access the old content from the new and vis-versa). First, that would defeat the purpose of different session persistence modes (if items are propagated, where should I persist them ?). Secondly, Session is not intended to share data between handlers/filters: the Exchange is basically a request-scoped Map that is designed for that purpose. The JWT based session is a session implementation whose persistence is done using an HTTP Cookie, the session's content being serialized as JSON (usable types are constrained, see list below) and used as the payload of an encrypted JSON Web Token (JWT). The use of the JWT session has a few constraints: * HTTP Cookies are size-limited to 4K -> Small objects can be stored * Only JSON compatible types are supported: * null * Java primitive types + their boxed equivalent * Strings (and any CharSequence) * List and Map (of the supported types, recursively) * Same client performing concurrent HTTP invocations (so within the same HTTP session) that will modify their own session content will see inconsistencies in the session. This is due to the fact that the JWT session is not shared, each concurrent Thread has its own instance and can modify it at will. At the end of the processing, each Thread will serialize its own session's content regardless of other Threads. git-svn-id: https://svn.forgerock.org/openig/trunk@565 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
08 Sep, 2014
1 commit
-
git-svn-id: https://svn.forgerock.org/openig/trunk@563 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
03 Aug, 2014
4 commits
-
* fix bug which meant that incoming request's path and query were not URL decoded correctly and prevented redirect URLs from working. git-svn-id: https://svn.forgerock.org/openig/trunk@448 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
git-svn-id: https://svn.forgerock.org/openig/trunk@446 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
* Request.uri is now a MutableUri * Removed UriResolver since it was useless with both this new feature and the BeanResolver git-svn-id: https://svn.forgerock.org/openig/trunk@444 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
-
… order to add addition "enhanced" getters and setters for fields Provide better APIs for interacting with Message entities. Previously we were stuck with the esoteric BranchingInputStream which makes entities very hard (impossible?) to use in expressions and Groovy. * methods for getting the entity's content as JSON or as a plain String * methods for setting the entity's content to JSON or String data * simplification (I hope) of the branch life-cycle management * make Message closeable, delegating close to the entity and onto the branching input stream, allowing us to avoid alot of null-checking boilerplace. git-svn-id: https://svn.forgerock.org/openig/trunk@443 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
01 Aug, 2014
1 commit
-
git-svn-id: https://svn.forgerock.org/openig/trunk@441 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
31 Jul, 2014
1 commit
-
… order to add addition "enhanced" getters and setters for fields * perform mechanical changes to encapsulate fields for Message, Request, and Response * added Javadoc for getters and setters * Message no longer extends FieldMap since the expression library leverages the BeanResolver. Remaining non-mechanical changes (e.g. adding enhanced getters/setters) will be performed as separate changes. git-svn-id: https://svn.forgerock.org/openig/trunk@430 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
28 Jul, 2014
1 commit
-
…here a heaplet's configuration parameter is optional. Allow name parameter to be null. If a name is provided then its associated object must exist in the heap. git-svn-id: https://svn.forgerock.org/openig/trunk@401 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
25 Jul, 2014
1 commit
-
…e it complicates the configuration model - The HandlerServlet class has been merged with the GatewayServlet. - GatewayServlet moved to the openig-war module. - Added javax.servlet dependency to openig-war. git-svn-id: https://svn.forgerock.org/openig/trunk@386 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
07 Jul, 2014
1 commit
-
Replaced Copyrighted with Copyright removed the (c) character not required removed All rights reserved from Apex Identity copyrights. The code is open source, thus rights are no longer reserved. git-svn-id: https://svn.forgerock.org/openig/trunk@345 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
03 Apr, 2014
1 commit
-
git-svn-id: https://svn.forgerock.org/openig/trunk@162 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
01 Nov, 2011
1 commit
-
git-svn-id: https://svn.forgerock.org/openig/trunk@7 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
13 Oct, 2011
1 commit
-
Rename package structure. Use JSON Fluent library. Bug fixes. git-svn-id: https://svn.forgerock.org/openig/trunk@2 dbb9e58e-28e6-4ce0-90e8-f11d9605b710