Package net.shibboleth.idp.saml.audit.impl

# Class WriteFTICKSLog

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.saml.audit.impl.WriteFTICKSLog

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `ProfileAction`, `Aware`, `MessageSource`, `MessageSourceAware`, `Action`

public class WriteFTICKSLog extends AbstractProfileAction
Action that produces F-TICKS log entries for successful SAML SSO responses.

Event:
  `EventIds.PROCEED_EVENT_ID`

## Field Summary

Fields
Modifier and Type
Field
Description
`private Function<ProfileRequestContext,String>`
`authenticationMethodLookupStrategy`
Lookup strategy for authentication method.
`private String`
`digestAlgorithm`
Digest algorithm for username hashing.
`private StringDigester`
`digester`
Username hasher.
`private String`
`federationId`
Federation ID for log.
`static final String`
`FTICKS_LOG_CATEGORY`
Logging category to use.
`private Function<ProfileRequestContext,String>`
`relyingPartyLookupStrategy`
Lookup strategy for relying party ID.
`private Function<ProfileRequestContext,String>`
`responderLookupStrategy`
Lookup strategy for responder ID.
`private String`
`salt`
Salt for username hashing.
`private Function<ProfileRequestContext,String>`
`statusCodeLookupStrategy`
Lookup strategy for StatusCode.
`private Function<ProfileRequestContext,String>`
`usernameLookupStrategy`
Lookup strategy for username.

## Constructor Summary

Constructors
Constructor
Description
`WriteFTICKSLog()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
`protected void`
`doInitialize()`
`void`
`setAuthenticationMethodLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set the strategy used to locate the authentication method.
`void`
`setDigestAlgorithm(String alg)`
Set the digest algorithm for username hashing.
`void`
`setFederationId(String id)`
Set the federation identifier for the log.
`void`
`setRelyingPartyLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set the strategy used to locate the relying party ID.
`void`
`setResponderLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set the strategy used to locate the responder ID.
`void`
`setSalt(String s)`
Set the salt for username hashing.
`void`
`setStatusCodeLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set the strategy used to locate the status code.
`void`
`setUsernameLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set the strategy used to locate the username.

### Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction

`doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy`

### Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction

`doPreExecute, getActivationCondition, setActivationCondition`

### Methods inherited from class org.opensaml.profile.action.AbstractProfileAction

`doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplier`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitialized`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface net.shibboleth.shared.component.InitializableComponent

`initialize, isInitialized`

## Field Details

### FTICKS_LOG_CATEGORY

@Nonnull @NotEmpty public static final String FTICKS_LOG_CATEGORY
Logging category to use.

See Also:
  - Constant Field Values

### federationId

@NonnullAfterInit @NotEmpty private String federationId
Federation ID for log.

### digestAlgorithm

@NonnullAfterInit @NotEmpty private String digestAlgorithm
Digest algorithm for username hashing.

### salt

@Nullable private String salt
Salt for username hashing.

### relyingPartyLookupStrategy

@Nonnull private Function<ProfileRequestContext,String> relyingPartyLookupStrategy
Lookup strategy for relying party ID.

### responderLookupStrategy

@Nonnull private Function<ProfileRequestContext,String> responderLookupStrategy
Lookup strategy for responder ID.

### usernameLookupStrategy

@Nonnull private Function<ProfileRequestContext,String> usernameLookupStrategy
Lookup strategy for username.

### authenticationMethodLookupStrategy

@Nonnull private Function<ProfileRequestContext,String> authenticationMethodLookupStrategy
Lookup strategy for authentication method.

### statusCodeLookupStrategy

@Nonnull private Function<ProfileRequestContext,String> statusCodeLookupStrategy
Lookup strategy for StatusCode.

### digester

@NonnullAfterInit private StringDigester digester
Username hasher.

## Constructor Details

### WriteFTICKSLog

public WriteFTICKSLog()
Constructor.

## Method Details

### setFederationId

public void setFederationId(@Nonnull @NotEmpty String id)
Set the federation identifier for the log.

Parameters:
  `id` - federation identifier

### setDigestAlgorithm

public void setDigestAlgorithm(@Nonnull @NotEmpty String alg)
Set the digest algorithm for username hashing.

Parameters:
  `alg` - digest algorithm

### setSalt

public void setSalt(@Nullable String s)
Set the salt for username hashing.

Parameters:
  `s` - salt

### setRelyingPartyLookupStrategy

public void setRelyingPartyLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)
Set the strategy used to locate the relying party ID.

Parameters:
  `strategy` - lookup strategy

### setResponderLookupStrategy

public void setResponderLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)
Set the strategy used to locate the responder ID.

Parameters:
  `strategy` - lookup strategy

### setUsernameLookupStrategy

public void setUsernameLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)
Set the strategy used to locate the username.

Parameters:
  `strategy` - lookup strategy

### setAuthenticationMethodLookupStrategy

public void setAuthenticationMethodLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)
Set the strategy used to locate the authentication method.

Parameters:
  `strategy` - lookup strategy

### setStatusCodeLookupStrategy

public void setStatusCodeLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)
Set the strategy used to locate the status code.

Parameters:
  `strategy` - lookup strategy

### doInitialize

protected void doInitialize() throws ComponentInitializationException

Overrides:
  `doInitialize` in class `AbstractInitializableComponent`
Throws:
  `ComponentInitializationException`

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doExecute` in class `AbstractProfileAction`