Class ChainingJWTClaimsValidator
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
-
- net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent
-
- net.shibboleth.oidc.security.jwt.claims.impl.ChainingJWTClaimsValidator
-
- All Implemented Interfaces:
ClaimsValidator,Component,DestructableComponent,IdentifiableComponent,IdentifiedComponent,InitializableComponent
@ThreadSafeAfterInit public class ChainingJWTClaimsValidator extends AbstractIdentifiableInitializableComponent implements ClaimsValidator
AClaimsValidatorimplementation that validates a JWT claims set from a chain of configured validators.Normally, validation terminates when one of the validators throws a
JWTValidationException. If noJWTValidationExceptionis thrown, the claims set is 'valid'.Optionally this can be toggled such that any of the validators succeeeding implies overall success.
Note, does not represent a chain of responsibility pattern despite the name.
-
-
Field Summary
Fields Modifier and Type Field Description private List<ClaimsValidator>claimValidatorsList of claim validators.private org.slf4j.LoggerlogClass logger.private booleanrequireAllRequire all of the validators to be successful.
-
Constructor Summary
Constructors Constructor Description ChainingJWTClaimsValidator()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddoInitialize()voidsetClaimValidators(List<ClaimsValidator> validators)Set the list of validators to use.voidsetRequireAll(boolean flag)Set whether to require all validators to be successful.voidvalidate(com.nimbusds.jwt.JWTClaimsSet claims, ProfileRequestContext context)-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent
setId
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
getId
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, 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.IdentifiableComponent
setId
-
Methods inherited from interface net.shibboleth.utilities.java.support.component.IdentifiedComponent
getId
-
-
-
-
Field Detail
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
claimValidators
@NonnullAfterInit @NonnullElements private List<ClaimsValidator> claimValidators
List of claim validators. Ordering is not important.
-
requireAll
private boolean requireAll
Require all of the validators to be successful.
-
-
Method Detail
-
doInitialize
protected void doInitialize() throws ComponentInitializationException- Overrides:
doInitializein classAbstractIdentifiedInitializableComponent- Throws:
ComponentInitializationException
-
setRequireAll
public void setRequireAll(boolean flag)
Set whether to require all validators to be successful.Defaults to true.
- Parameters:
flag- flag to set
-
setClaimValidators
public void setClaimValidators(@Nullable @NonnullElements List<ClaimsValidator> validators)
Set the list of validators to use.- Parameters:
validators- validators to use
-
validate
public void validate(@Nullable com.nimbusds.jwt.JWTClaimsSet claims, @Nonnull ProfileRequestContext context) throws JWTValidationException- Specified by:
validatein interfaceClaimsValidator- Throws:
JWTValidationException
-
-