Package org.pac4j.saml.profile.impl
Class AbstractSAML2ResponseValidator
java.lang.Object
org.pac4j.saml.profile.impl.AbstractSAML2ResponseValidator
- All Implemented Interfaces:
SAML2ResponseValidator
- Direct Known Subclasses:
SAML2AuthnResponseValidator,SAML2LogoutValidator
public abstract class AbstractSAML2ResponseValidator
extends Object
implements SAML2ResponseValidator
The abstract class for all SAML response validators.
- Since:
- 3.4.0
- Author:
- Jerome Leleu
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected longprotected final org.opensaml.saml.saml2.encryption.Decrypterprotected final org.slf4j.Loggerprotected final org.pac4j.core.logout.handler.SessionLogoutHandlerprotected final ReplayCacheProviderprotected final SAML2SignatureTrustEngineProviderprotected final net.shibboleth.shared.net.URIComparator -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractSAML2ResponseValidator(SAML2SignatureTrustEngineProvider signatureTrustEngineProvider, org.opensaml.saml.saml2.encryption.Decrypter decrypter, org.pac4j.core.logout.handler.SessionLogoutHandler logoutHandler, ReplayCacheProvider replayCache, net.shibboleth.shared.net.URIComparator uriComparator) Constructor for AbstractSAML2ResponseValidator. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancompareEndpoints(String destination, String endpoint) compareEndpoints.protected StringcomputeSloKey(String sessionIndex, SAML2AuthenticationCredentials.SAMLNameID nameId) computeSloKey.protected org.opensaml.saml.saml2.core.NameIDdecryptEncryptedId(org.opensaml.saml.saml2.core.EncryptedID encryptedId, org.opensaml.saml.saml2.encryption.Decrypter decrypter) Decrypts an EncryptedID, using a decrypter.protected booleanisDateValid(Instant issueInstant, long interval) isDateValid.protected booleanisIssueInstantValid(Instant issueInstant) isIssueInstantValid.final voidsetAcceptedSkew(long acceptedSkew) setAcceptedSkew.protected voidvalidateIssueInstant(Instant issueInstant) validateIssueInstant.protected voidvalidateIssuer(org.opensaml.saml.saml2.core.NameIDType issuer, SAML2MessageContext context) Validate issuer format and value.protected voidvalidateIssuerIfItExists(org.opensaml.saml.saml2.core.Issuer isser, SAML2MessageContext context) validateIssuerIfItExists.protected voidvalidateSignature(org.opensaml.xmlsec.signature.Signature signature, String idpEntityId, org.opensaml.security.trust.TrustEngine<org.opensaml.xmlsec.signature.Signature> trustEngine) Validate the given digital signature by checking its profile and value.protected voidvalidateSignatureIfItExists(org.opensaml.xmlsec.signature.Signature signature, SAML2MessageContext context, org.opensaml.xmlsec.signature.support.SignatureTrustEngine engine) validateSignatureIfItExists.protected voidvalidateSuccess(org.opensaml.saml.saml2.core.Status status) Validates that the response is a success.protected voidverifyEndpoint(Collection<String> endpoints, String destination, boolean isDestinationMandatory) verifyEndpoint.protected voidverifyMessageReplay(SAML2MessageContext context) verifyMessageReplay.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.pac4j.saml.profile.api.SAML2ResponseValidator
validate
-
Field Details
-
logger
protected final org.slf4j.Logger logger -
signatureTrustEngineProvider
-
uriComparator
protected final net.shibboleth.shared.net.URIComparator uriComparator -
decrypter
protected final org.opensaml.saml.saml2.encryption.Decrypter decrypter -
logoutHandler
protected final org.pac4j.core.logout.handler.SessionLogoutHandler logoutHandler -
replayCache
-
acceptedSkew
protected long acceptedSkew
-
-
Constructor Details
-
Method Details
-
validateSuccess
protected void validateSuccess(org.opensaml.saml.saml2.core.Status status) Validates that the response is a success.- Parameters:
status- the response status.
-
validateSignatureIfItExists
protected void validateSignatureIfItExists(org.opensaml.xmlsec.signature.Signature signature, SAML2MessageContext context, org.opensaml.xmlsec.signature.support.SignatureTrustEngine engine) validateSignatureIfItExists.
- Parameters:
signature- aSignatureobjectcontext- aSAML2MessageContextobjectengine- aSignatureTrustEngineobject
-
validateSignature
protected void validateSignature(org.opensaml.xmlsec.signature.Signature signature, String idpEntityId, org.opensaml.security.trust.TrustEngine<org.opensaml.xmlsec.signature.Signature> trustEngine) Validate the given digital signature by checking its profile and value.- Parameters:
signature- the signatureidpEntityId- the idp entity idtrustEngine- the trust engine
-
validateIssuerIfItExists
protected void validateIssuerIfItExists(org.opensaml.saml.saml2.core.Issuer isser, SAML2MessageContext context) validateIssuerIfItExists.
- Parameters:
isser- aIssuerobjectcontext- aSAML2MessageContextobject
-
validateIssuer
protected void validateIssuer(org.opensaml.saml.saml2.core.NameIDType issuer, SAML2MessageContext context) Validate issuer format and value.- Parameters:
issuer- the issuercontext- the context
-
validateIssueInstant
validateIssueInstant.
- Parameters:
issueInstant- aInstantobject
-
isIssueInstantValid
isIssueInstantValid.
- Parameters:
issueInstant- aInstantobject- Returns:
- a boolean
-
isDateValid
isDateValid.
- Parameters:
issueInstant- aInstantobjectinterval- a long- Returns:
- a boolean
-
verifyEndpoint
protected void verifyEndpoint(Collection<String> endpoints, String destination, boolean isDestinationMandatory) verifyEndpoint.
-
compareEndpoints
compareEndpoints.
-
verifyMessageReplay
verifyMessageReplay.
- Parameters:
context- aSAML2MessageContextobject
-
decryptEncryptedId
protected org.opensaml.saml.saml2.core.NameID decryptEncryptedId(org.opensaml.saml.saml2.core.EncryptedID encryptedId, org.opensaml.saml.saml2.encryption.Decrypter decrypter) throws SAMLException Decrypts an EncryptedID, using a decrypter.- Parameters:
encryptedId- The EncryptedID to be decrypted.decrypter- The decrypter to use.- Returns:
- Decrypted ID or
nullif any input isnull. - Throws:
SAMLException- If the input ID cannot be decrypted.
-
computeSloKey
protected String computeSloKey(String sessionIndex, SAML2AuthenticationCredentials.SAMLNameID nameId) computeSloKey.
- Parameters:
sessionIndex- aStringobjectnameId- aSAML2AuthenticationCredentials.SAMLNameIDobject- Returns:
- a
Stringobject
-
setAcceptedSkew
public final void setAcceptedSkew(long acceptedSkew) setAcceptedSkew.
- Specified by:
setAcceptedSkewin interfaceSAML2ResponseValidator- Parameters:
acceptedSkew- a long
-