Class CaptureDecorator
java.lang.Object
org.forgerock.openig.decoration.helper.AbstractDecorator
org.forgerock.openig.decoration.capture.CaptureDecorator
- All Implemented Interfaces:
Decorator
The capture decorator can decorates both
Filter and Handler instances. It enables
the user to see the messages coming in and out of the decorated object.
Multiple input/output can be intercepted:
CapturePoint.ALL: Prints all of the messagesCapturePoint.FILTERED_REQUEST: Prints the outgoing request (Filter only)CapturePoint.FILTERED_RESPONSE: Prints the outgoing responseCapturePoint.REQUEST: Prints incoming + outgoing requestCapturePoint.RESPONSE: Prints incoming + outgoing responseCapturePoint.NONE: Disable capture
{
"name": "capture",
"type": "CaptureDecorator",
"config": {
"captureEntity": false,
"captureContext": false
}
}
The capture decorator can be configured to globally enable entity capture using the captureEntity
boolean attribute (default to false). To set a limit on the maximum length of entities to capture, use
maxEntityLength and set it to a value in bytes, the default is 512K.
To capture the context at the capture point as well, use the captureContext boolean attribute
(default to false).
To mask values from headers and/or values from the attributes context, use the optional masks section
to match by header and/or attribute name and mask the actual value. The name to match can be a regular expression.
To override the default mask value of *****, provide the optional mask to set a different mask value.
{
"name": "capture",
"type": "CaptureDecorator",
"config": {
"masks": {
"headers": [ "x-token" ],
"attributes": [ "replay" ],
"mask": "*** my mask value ***"
}
}
}
To decorate a component, just add the decorator declaration next to the config element:
{
"type": "...",
"capture": [ "FILTERED_REQUEST", "RESPONSE" ],
"config": { ... }
}
Notice that the attribute name in the decorated object has to be the same as the decorator
heap object name (capture in our example).
A default capture decorator is automatically created when IG starts. It can be overridden
in the configuration files if default values are not satisfying.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classCreates and initializes a CaptureDecorator in a heap environment. -
Constructor Summary
ConstructorsConstructorDescriptionCaptureDecorator(String name, boolean captureEntity, boolean captureContext) Builds a newcapturedecorator.CaptureDecorator(String name, boolean captureEntity, boolean captureContext, int maxEntityLength, KeyValueProcessor headerProcessor, KeyValueProcessor attributeProcessor, KeyValueProcessor trailerProcessor) Builds a newcapturedecorator. -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturnstrueif this decorator is compatible with the provided component type.Decorates the provideddelegateinstance with the provideddecoratorConfigconfiguration.Methods inherited from class org.forgerock.openig.decoration.helper.AbstractDecorator
getLogger
-
Constructor Details
-
CaptureDecorator
Builds a newcapturedecorator.- Parameters:
name- The name of this decoratorcaptureEntity-trueif the decorator needs to capture the entity,falseotherwisecaptureContext-trueif the decorator needs to capture the context,falseotherwise
-
CaptureDecorator
public CaptureDecorator(String name, boolean captureEntity, boolean captureContext, int maxEntityLength, KeyValueProcessor headerProcessor, KeyValueProcessor attributeProcessor, KeyValueProcessor trailerProcessor) Builds a newcapturedecorator.- Parameters:
name- The name of this decoratorcaptureEntity-trueif the decorator needs to capture the entity,falseotherwisecaptureContext-trueif the decorator needs to capture the context,falseotherwisemaxEntityLength- Set the maximum entity length to capture ifcaptureEntityis enabled.headerProcessor- TheKeyValueProcessorto apply to header values.attributeProcessor- TheKeyValueProcessorto apply to attribute values.trailerProcessor- TheKeyValueProcessorto apply to trailer values.
-
-
Method Details
-
accepts
Description copied from interface:DecoratorReturnstrueif this decorator is compatible with the provided component type. Note that a return value oftruedoes not necessarily indicate that decoration will be performed since it may also depend on other factors- Parameters:
type- type under test- Returns:
trueif the decorator can decorate instance of the given type,falseotherwise.
-
decorate
public DecorationHandle decorate(Object delegate, JsonValue decoratorConfig, Context context) throws HeapException Description copied from interface:DecoratorDecorates the provideddelegateinstance with the provideddecoratorConfigconfiguration. The implementation should take care of not changing the base type of the delegate.- Parameters:
delegate- instance to be decorateddecoratorConfig- the decorator configuration to applycontext- contextual information of the decorated instance- Returns:
- a handle of the decoration that was setup, never
null. - Throws:
HeapException- when decoration fails
-