02 Dec, 2014

7 commits

  • Reviewed onscreen by Jean-Charles.
    
    git-svn-id: https://svn.forgerock.org/openig/trunk@776 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    mark
     
  • git-svn-id: https://svn.forgerock.org/openig/trunk@775 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    guillaume.sauthier
     
  • git-svn-id: https://svn.forgerock.org/openig/trunk@774 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    guillaume.sauthier
     
  • git-svn-id: https://svn.forgerock.org/openig/trunk@773 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    guillaume.sauthier
     
  • `HeapImpl.addDefaultDeclaration()` is now the way to add default object declarations in the heap.
    
    Default declarations are only included if no user-provided overriding declaration is
    found (only works for heap declarations, not for named inline declaration).
    
    git-svn-id: https://svn.forgerock.org/openig/trunk@772 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    guillaume.sauthier
     
  • `ConsoleLogSink` is now rendering each `LogEntry` on 2 lines with a line separator
    between entries, the objective being to improve console log readability. The first line
    is the header line and display the timestamp of the event (in the current system Locale),
    the entry's `LogLevel` and ends with the `Name` (leaf part) of the heap object that is
    the source of the log statement.
    
    ```
    MON DEC 01 20:39:16 CET 2014 (INFO) _Router
    Added route 'oauth2-resources.json' defined in file '/Users/guillaume/tmp/demo/config/routes/oauth2-resources.json'
    ------------------------------
    ```
    
    Notice that a special treatment is done when logging a `Throwable`: a condensed stack
    trace is printed on the console and if (and only if) the `LogSink` has been assigned
    a `DEBUG` or `TRACE` level, the full stack trace is printed (independently of the
    entry's level).
    
    ```
    MON DEC 01 15:28:10 CET 2014 (DEBUG) ResourceServer
    Initial token resolution has failed
    [     OAuth2TokenException] > Initial token resolution has failed
    [     OAuth2TokenException] > Authorization Server returned an error
                                  (error: bad_request, description: Could not read token in CTS)
    
    org.forgerock.openig.filter.oauth2.OAuth2TokenException: Initial token resolution has failed
      at org.forgerock.openig.filter.oauth2.cache.CachingAccessTokenResolver.resolve(CachingAccessTokenResolver.java:62)
    ... 33 more
    ------------------------------
    ```
    
    A new `stream` property has been added to `ConsoleLogSink` to let the user choose
    which PrintStream to use for printing messages:
     * `ERR`: Use System.err (default value, keep compatibility)
     * `OUT`: Use System.out
     * `AUTO`: Select System.out for `TRACE` to `INFO` messages, switching to System.err
       for `WARNING` and `ERROR`.
    
    `FileLogSink` implements a machine parseable `LogEntry` rendering: each entry is on
    one line and includes:
     * timestamp of the event (in the current system Locale), always have the same length
     * the entry's `LogLevel`, always 1 word, uppercase
     * the `Name` (leaf part) of the heap object that is the source of the log statement.
     * a `---` separator that segregates the beginning of the line (log statement's context)
       from the entry's message (the rest of the line)
    
    Notice that in the case of `Throwable` printing, the full stack trace is printed as commented lines.
    
    ```
    MON DEC 01 17:46:21 CET 2014 DEBUG ResourceServer --- Initial token resolution has failed
     # org.forgerock.openig.filter.oauth2.OAuth2TokenException: Initial token resolution has failed
     # 	at org.forgerock.openig.filter.oauth2.cache.CachingAccessTokenResolver.resolve(CachingAccessTokenResolver.java:62)
     # 	at org.forgerock.openig.filter.oauth2.OAuth2ResourceServerFilter.filter(OAuth2ResourceServerFilter.java:205)
     # 	at org.forgerock.openig.decoration.capture.CaptureFilter.filter(CaptureFilter.java:62)
    ```
    
    git-svn-id: https://svn.forgerock.org/openig/trunk@771 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    guillaume.sauthier
     
  • git-svn-id: https://svn.forgerock.org/openig/trunk@770 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    mark
     

01 Dec, 2014

4 commits


28 Nov, 2014

9 commits


27 Nov, 2014

3 commits


26 Nov, 2014

1 commit


25 Nov, 2014

5 commits


24 Nov, 2014

1 commit


22 Nov, 2014

1 commit


21 Nov, 2014

3 commits


20 Nov, 2014

6 commits

  • git-svn-id: https://svn.forgerock.org/openig/trunk@741 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    mark
     
  • …nsure that invalid JWT sessions are expired
    
    
    git-svn-id: https://svn.forgerock.org/openig/trunk@740 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    matthew
     
  • Timer values should always be obtained through `timer` decorations.
    
    git-svn-id: https://svn.forgerock.org/openig/trunk@739 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    guillaume.sauthier
     
  • git-svn-id: https://svn.forgerock.org/openig/trunk@738 dbb9e58e-28e6-4ce0-90e8-f11d9605b710
    mark
     
  • 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
    mark
     
  • 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
    guillaume.sauthier