Package net.shibboleth.idp.session.impl
Class UpdateSessionWithAuthenticationResult
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.authn.AbstractAuthenticationAction
net.shibboleth.idp.session.impl.UpdateSessionWithAuthenticationResult
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
An authentication action that establishes a record of the
AuthenticationResult
in an IdPSession for the client, either by updating an existing session or creating a new one.
A new AuthenticationResult may be added to the session, or the last activity
time of an existing one updated. A new one will only be added if the authentication context indicates that the
result is "cacheable".
An existing session is identified via a SessionContext attached to the ProfileRequestContext.
If a new session is created, it will be placed into a SessionContext, creating it if necessary, with the
principal name coming from a SubjectContext.
An error interacting with the session layer will result in an EventIds.IO_ERROR event.
- Event:
EventIds.PROCEED_EVENT_ID,EventIds.INVALID_PROFILE_CTX,EventIds.IO_ERROR- Precondition:
ProfileRequestContext.getSubcontext(AuthenticationContext.class) != null
- Postcondition:
- If AuthenticationContext.getAuthenticationResult() != null and SubjectContext.getPrincipalName() != null then the steps above are performed, and ProfileRequestContext.getSubcontext(SessionContext.class).getIdPSession() != null
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.slf4j.LoggerClass logger.private Function<ProfileRequestContext,SessionContext> Lookup/creation function for SessionContext.private SessionContextExisting or newly created SessionContext.private SessionManagerSessionManager.private Function<ProfileRequestContext,SubjectContext> Lookup function for SubjectContext.private SubjectContextExisting SubjectContext. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcreateIdPSession(AuthenticationContext authenticationContext) Create a new session and populate the SessionContext.protected voiddoExecute(ProfileRequestContext profileRequestContext, AuthenticationContext authenticationContext) Performs this authentication action.protected voidprotected booleandoPreExecute(ProfileRequestContext profileRequestContext, AuthenticationContext authenticationContext) Performs this authentication action's pre-execute step.voidSet the lookup/creation strategy for the SessionContext to update.voidsetSessionManager(SessionManager manager) Set theSessionManagerto use.voidSet the lookup strategy for the SubjectContext to access.private voidupdateIdPSession(AuthenticationContext authenticationContext, IdPSession session) Update an existing session.Methods inherited from class net.shibboleth.idp.authn.AbstractAuthenticationAction
doExecute, doPreExecute, setAuthenticationContextLookupStrategyMethods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategyMethods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationConditionMethods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplierMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
sessionManager
SessionManager. -
sessionContextCreationStrategy
Lookup/creation function for SessionContext. -
subjectContextLookupStrategy
Lookup function for SubjectContext. -
sessionCtx
Existing or newly created SessionContext. -
subjectCtx
Existing SubjectContext.
-
-
Constructor Details
-
UpdateSessionWithAuthenticationResult
public UpdateSessionWithAuthenticationResult()Constructor.
-
-
Method Details
-
setSessionManager
Set theSessionManagerto use.- Parameters:
manager- session manager to use
-
setSessionContextCreationStrategy
public void setSessionContextCreationStrategy(@Nonnull Function<ProfileRequestContext, SessionContext> strategy) Set the lookup/creation strategy for the SessionContext to update.- Parameters:
strategy- creation/lookup strategy
-
setSubjectContextLookupStrategy
public void setSubjectContextLookupStrategy(@Nonnull Function<ProfileRequestContext, SubjectContext> strategy) Set the lookup strategy for the SubjectContext to access.- Parameters:
strategy- lookup strategy
-
doInitialize
- Overrides:
doInitializein classAbstractInitializableComponent- Throws:
ComponentInitializationException
-
doPreExecute
protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull AuthenticationContext authenticationContext) Performs this authentication action's pre-execute step. Default implementation just returns true.- Overrides:
doPreExecutein classAbstractAuthenticationAction- Parameters:
profileRequestContext- the current IdP profile request contextauthenticationContext- the current authentication context- Returns:
- true iff execution should continue
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull AuthenticationContext authenticationContext) Performs this authentication action. Default implementation throws an exception.- Overrides:
doExecutein classAbstractAuthenticationAction- Parameters:
profileRequestContext- the current IdP profile request contextauthenticationContext- the current authentication context
-
updateIdPSession
private void updateIdPSession(@Nonnull AuthenticationContext authenticationContext, @Nonnull IdPSession session) throws SessionException Update an existing session.If the result is the product of an attempted flow, then it's added to the session. If reused, its last activity time is updated.
- Parameters:
authenticationContext- current authentication contextsession- session to update- Throws:
SessionException- if an error occurs updating the session
-
createIdPSession
private void createIdPSession(@Nonnull AuthenticationContext authenticationContext) throws SessionException Create a new session and populate the SessionContext.- Parameters:
authenticationContext- current authentication context- Throws:
SessionException- if an error occurs creating the session
-