Class ValidateRedirectURI
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- org.opensaml.profile.action.AbstractProfileAction
-
- org.opensaml.profile.action.AbstractConditionalProfileAction
-
- net.shibboleth.idp.profile.AbstractProfileAction
-
- net.shibboleth.idp.plugin.oidc.op.profile.impl.AbstractOIDCRequestAction<com.nimbusds.openid.connect.sdk.AuthenticationRequest>
-
- net.shibboleth.idp.plugin.oidc.op.profile.impl.AbstractOIDCAuthenticationRequestAction
-
- net.shibboleth.idp.plugin.oidc.op.profile.impl.AbstractOIDCAuthenticationResponseAction
-
- net.shibboleth.idp.plugin.oidc.op.profile.impl.ValidateRedirectURI
-
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
public class ValidateRedirectURI extends AbstractOIDCAuthenticationResponseAction
Action that validates redirect uri is expected. Validated redirect uri is stored to response context.
-
-
Field Summary
Fields Modifier and Type Field Description private org.slf4j.LoggerlogClass logger.private Function<ProfileRequestContext,URI>redirectURILookupStrategyStrategy used to obtain the redirect uri value in request.private Function<ProfileRequestContext,Set<URI>>registeredRedirectURIsLookupStrategyStrategy used to obtain registered redirect uris to compare if request had no redirect uri value.private booleanrequireRequestedValueWhether to require redirect uri value in the request also when only single value is registered.private Function<ProfileRequestContext,Set<URI>>validRedirectURIsLookupStrategyStrategy used to obtain the redirect uris to compare request value to.
-
Constructor Summary
Constructors Constructor Description ValidateRedirectURI()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddoExecute(ProfileRequestContext profileRequestContext)protected voidhandleNullRequestedURI(ProfileRequestContext profileRequestContext, Set<URI> validRedirectionURIs)Handles the missing requested redirect URI case: it may be missing if it's not required to exist and the registered and valid records contain only single matching value.voidsetRedirectURILookupStrategy(Function<ProfileRequestContext,URI> strategy)Set the strategy used to locate the redirect uri of the request.voidsetRegisteredRedirectURIsLookupStrategy(Function<ProfileRequestContext,Set<URI>> strategy)Set the strategy used to obtain registered redirect uris to compare if request had no redirect uri value.voidsetRequireRequestedValue(boolean flag)Set whether to require redirect uri value in the request also when only single value is registered.voidsetValidRedirectURIsLookupStrategy(Function<ProfileRequestContext,Set<URI>> strategy)Set the strategy used to locate the redirect uris to compare against.-
Methods inherited from class net.shibboleth.idp.plugin.oidc.op.profile.impl.AbstractOIDCAuthenticationResponseAction
doPreExecute, getMetadataContext, getOidcResponseContext
-
Methods inherited from class net.shibboleth.idp.plugin.oidc.op.profile.impl.AbstractOIDCAuthenticationRequestAction
getAuthenticationRequest
-
Methods inherited from class net.shibboleth.idp.plugin.oidc.op.profile.impl.AbstractOIDCRequestAction
getRequest
-
Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getMessage, getMessage, getMessage, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy
-
Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationCondition
-
Methods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletResponse, getLogPrefix, setHttpServletRequest, setHttpServletResponse
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, 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.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
-
-
-
Field Detail
-
log
@Nonnull private org.slf4j.Logger log
Class logger.
-
redirectURILookupStrategy
@Nonnull private Function<ProfileRequestContext,URI> redirectURILookupStrategy
Strategy used to obtain the redirect uri value in request.
-
validRedirectURIsLookupStrategy
@Nonnull private Function<ProfileRequestContext,Set<URI>> validRedirectURIsLookupStrategy
Strategy used to obtain the redirect uris to compare request value to.
-
registeredRedirectURIsLookupStrategy
@Nonnull private Function<ProfileRequestContext,Set<URI>> registeredRedirectURIsLookupStrategy
Strategy used to obtain registered redirect uris to compare if request had no redirect uri value.
-
requireRequestedValue
private boolean requireRequestedValue
Whether to require redirect uri value in the request also when only single value is registered.
-
-
Method Detail
-
setRedirectURILookupStrategy
public void setRedirectURILookupStrategy(@Nonnull Function<ProfileRequestContext,URI> strategy)Set the strategy used to locate the redirect uri of the request.- Parameters:
strategy- lookup strategy
-
setValidRedirectURIsLookupStrategy
public void setValidRedirectURIsLookupStrategy(@Nonnull Function<ProfileRequestContext,Set<URI>> strategy)Set the strategy used to locate the redirect uris to compare against.- Parameters:
strategy- lookup strategy
-
setRegisteredRedirectURIsLookupStrategy
public void setRegisteredRedirectURIsLookupStrategy(@Nonnull Function<ProfileRequestContext,Set<URI>> strategy)Set the strategy used to obtain registered redirect uris to compare if request had no redirect uri value.- Parameters:
strategy- lookup strategy
-
setRequireRequestedValue
public void setRequireRequestedValue(boolean flag)
Set whether to require redirect uri value in the request also when only single value is registered.- Parameters:
flag- flag to set
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)- Overrides:
doExecutein classAbstractProfileAction
-
handleNullRequestedURI
protected void handleNullRequestedURI(ProfileRequestContext profileRequestContext, @Nonnull @NotEmpty Set<URI> validRedirectionURIs)
Handles the missing requested redirect URI case: it may be missing if it's not required to exist and the registered and valid records contain only single matching value.- Parameters:
profileRequestContext- profile request contextvalidRedirectionURIs- set of valid redirection uris
-
-