Class AddAuthnRequest
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.saml.saml2.profile.impl.AddAuthnRequest
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
Action that creates an
AuthnRequest and sets it as the message returned by
InOutOperationContext.getOutboundMessageContext().
If an issuer value is returned via a lookup strategy, then it's set as the Issuer of the message.
Various other values are derived from the active configuration such as RequestedAuthnContext,
NameIDPolicy, and Scoping.
- Event:
EventIds.PROCEED_EVENT_ID,EventIds.INVALID_MSG_CTX,EventIds.INVALID_PROFILE_CTX,IdPEventIds.INVALID_PROFILE_CONFIG- Postcondition:
- ProfileRequestContext.getOutboundMessageContext().getMessage() != null
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanConvert requested principals of unknown types into SAML AC classes.private IdentifierGenerationStrategyThe generator to use.Strategy used to locate theIdentifierGenerationStrategyto use.private StringEntityID to populate into Issuer element.private Function<ProfileRequestContext,String> Strategy used to obtain the request issuer value.private org.slf4j.LoggerClass logger.private Function<ProfileRequestContext,NameID> Optional strategy to populate request with aNameID.private booleanOverwrite an existing message?private BrowserSSOProfileConfigurationApplicable profile configuration.Strategy used to obtain the proxied requester context.private Function<ProfileRequestContext,String> Strategy used to obtain the original requester value. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate ExtensionsbuildExtensions(ProfileRequestContext profileRequestContext) BuildRequestedAttributesextension if required.private RequestedAuthnContextbuildRequestedAuthnContext(ProfileRequestContext profileRequestContext) Build aRequestedAuthnContextif warranted.private ScopingbuildScoping(ProfileRequestContext profileRequestContext, Integer count, Set<String> idplist) Build aScopingelement, decrementing the proxy count if set.private SubjectbuildSubject(ProfileRequestContext profileRequestContext) Build aSubjectelement if necessary.protected voiddoExecute(ProfileRequestContext profileRequestContext, AuthenticationContext authenticationContext) Performs this authentication action.protected booleandoPreExecute(ProfileRequestContext profileRequestContext, AuthenticationContext authenticationContext) Performs this authentication action's pre-execute step.voidsetConvertUnknownRequestedPrincipals(boolean flag) Sets whether to convert unknown/non-SAMLPrincipalobjects returned for use in theRequestedAuthnContextpopulation step into SAMLAuthnContextClassRefvalues.voidsetIdentifierGeneratorLookupStrategy(Function<ProfileRequestContext, IdentifierGenerationStrategy> strategy) Set the strategy used to locate theIdentifierGenerationStrategyto use.voidSet the strategy used to locate the issuer value to use.voidvoidsetOverwriteExisting(boolean flag) Set whether to overwrite an existing message.voidsetProxiedRequesterContextLookupStrategy(Function<ProfileRequestContext, ProxiedRequesterContext> strategy) Set the strategy used to locate theProxiedRequesterContextto use for the Scoping element'sRequesterIDvalues.voidSet the strategy used to locate the requester value to use for the Scoping element'sRequesterIDvalue.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, doInitialize, 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 org.slf4j.Logger logClass logger. -
overwriteExisting
private boolean overwriteExistingOverwrite an existing message? -
idGeneratorLookupStrategy
@Nonnull private Function<ProfileRequestContext,IdentifierGenerationStrategy> idGeneratorLookupStrategyStrategy used to locate theIdentifierGenerationStrategyto use. -
issuerLookupStrategy
Strategy used to obtain the request issuer value. -
requesterLookupStrategy
Strategy used to obtain the original requester value. -
proxiedRequesterContextLookupStrategy
@Nonnull private Function<ProfileRequestContext,ProxiedRequesterContext> proxiedRequesterContextLookupStrategyStrategy used to obtain the proxied requester context. -
nameIDLookupStrategy
Optional strategy to populate request with aNameID. -
convertUnknownRequestedPrincipals
private boolean convertUnknownRequestedPrincipalsConvert requested principals of unknown types into SAML AC classes. -
idGenerator
The generator to use. -
profileConfiguration
Applicable profile configuration. -
issuerId
EntityID to populate into Issuer element.
-
-
Constructor Details
-
AddAuthnRequest
public AddAuthnRequest()Constructor.
-
-
Method Details
-
setConvertUnknownRequestedPrincipals
public void setConvertUnknownRequestedPrincipals(boolean flag) Sets whether to convert unknown/non-SAMLPrincipalobjects returned for use in theRequestedAuthnContextpopulation step into SAMLAuthnContextClassRefvalues.Defaults to false.
- Parameters:
flag- flag to set- Since:
- 5.1.0
-
setOverwriteExisting
public void setOverwriteExisting(boolean flag) Set whether to overwrite an existing message.- Parameters:
flag- flag to set
-
setIdentifierGeneratorLookupStrategy
public void setIdentifierGeneratorLookupStrategy(@Nonnull Function<ProfileRequestContext, IdentifierGenerationStrategy> strategy) Set the strategy used to locate theIdentifierGenerationStrategyto use.- Parameters:
strategy- lookup strategy
-
setIssuerLookupStrategy
Set the strategy used to locate the issuer value to use.- Parameters:
strategy- lookup strategy
-
setRequesterLookupStrategy
Set the strategy used to locate the requester value to use for the Scoping element'sRequesterIDvalue.- Parameters:
strategy- lookup strategy- Since:
- 4.3.0
-
setProxiedRequesterContextLookupStrategy
public void setProxiedRequesterContextLookupStrategy(@Nonnull Function<ProfileRequestContext, ProxiedRequesterContext> strategy) Set the strategy used to locate theProxiedRequesterContextto use for the Scoping element'sRequesterIDvalues.- Parameters:
strategy- lookup strategy- Since:
- 4.3.0
-
setNameIDLookupStrategy
- Parameters:
strategy- lookup strategy- Since:
- 5.0.0
-
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
-
buildRequestedAuthnContext
@Nullable private RequestedAuthnContext buildRequestedAuthnContext(@Nullable ProfileRequestContext profileRequestContext) Build aRequestedAuthnContextif warranted.- Parameters:
profileRequestContext- current profile request context- Returns:
- the object to include in the request, or null
-
buildSubject
Build aSubjectelement if necessary.- Parameters:
profileRequestContext- profile request context- Returns:
- the
Subjectelement to include - Since:
- 5.0.0
-
buildScoping
@Nullable private Scoping buildScoping(@Nonnull ProfileRequestContext profileRequestContext, @Nullable Integer count, @Nonnull Set<String> idplist) Build aScopingelement, decrementing the proxy count if set.- Parameters:
profileRequestContext- current profile request contextcount- proxy countidplist- list of IdP entityIDs- Returns:
- populated
Scoping
-
buildExtensions
BuildRequestedAttributesextension if required.- Parameters:
profileRequestContext- current profile request context- Returns:
- extension or null
-