Class AuthnStatementValidator
java.lang.Object
org.opensaml.saml.saml2.assertion.impl.AuthnStatementValidator
se.swedenconnect.opensaml.saml2.assertion.validation.AuthnStatementValidator
- All Implemented Interfaces:
StatementValidator
Core statement validator for
AuthnStatement
s.
Supports the following ValidationContext
static parameters:
CoreValidatorParameters.AUTHN_REQUEST
: Optional. If supplied will be used in a number of validations when information from the correspondingAuthnRequest
is needed. If not supplied, other, more detailed parameters must be given.AUTHN_REQUEST_FORCE_AUTHN
: If the aboveCoreValidatorParameters.AUTHN_REQUEST
is not assigned, this parameter gives theForceAuthn
flag. This is used to determine if a valid assertion was issued based on SSO/non-SSO.AUTHN_REQUEST_ISSUE_INSTANT
: If the aboveCoreValidatorParameters.AUTHN_REQUEST
is not assigned, this parameter gives the issue instant of the authentication request. This is used to determine if a valid assertion was issued based on SSO/non-SSO.MAX_ACCEPTED_SSO_SESSION_TIME
: For SSO, we may want to assert that the authentication is not too old. If so, this parameter gives the maximum accepted session time.
- Author:
- Martin Lindström (martin@idsec.se)
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static Instant
Gets the issue instant of theAuthnRequest
from the validation context.protected static Boolean
getForceAuthnFlag
(ValidationContext context) Gets theForceAuthn
flag from the validation context.protected static Duration
Gets the maximum time we allow for SSO sessions.protected ValidationResult
validate
(AuthnStatement statement, Assertion assertion, ValidationContext context) Validates theAuthnStatement
.final ValidationResult
validate
(Statement statement, Assertion assertion, ValidationContext context) protected ValidationResult
validateAuthnContext
(AuthnStatement statement, Assertion assertion, ValidationContext context) Default implementation will only assert that theAuthnContext
element is present.protected ValidationResult
validateAuthnInstant
(AuthnStatement statement, Assertion assertion, ValidationContext context) Validates theAuthnInstant
of theAuthnStatement
.protected ValidationResult
validateSessionIndex
(AuthnStatement statement, Assertion assertion, ValidationContext context) Default implementation does not perform any checks and returnsValidationResult.VALID
.protected ValidationResult
validateSessionNotOnOrAfter
(AuthnStatement statement, Assertion assertion, ValidationContext context) Default implementation does not perform any checks and returnsValidationResult.VALID
.protected ValidationResult
validateSsoAndSession
(Instant authnInstant, AuthnStatement statement, Assertion assertion, ValidationContext context) Makes checks for SSO and session lengths.Methods inherited from class org.opensaml.saml.saml2.assertion.impl.AuthnStatementValidator
getServicedStatement, validateSubjectLocality
-
Field Details
-
AUTHN_REQUEST_FORCE_AUTHN
Key for a validation context parameter. Carries aBoolean
holding the value of the ForceAuthn flag from the AuthnRequest.- See Also:
-
AUTHN_REQUEST_ISSUE_INSTANT
Key for a validation context parameter. Carries aInstant
holding the issuance time for the AuthnRequest.- See Also:
-
MAX_ACCEPTED_SSO_SESSION_TIME
Key for a validation context parameter. Carries aDuration
holding the maximum session time that we can accept for SSO.- See Also:
-
-
Constructor Details
-
AuthnStatementValidator
public AuthnStatementValidator()
-
-
Method Details
-
validate
@Nonnull public final ValidationResult validate(@Nonnull Statement statement, @Nonnull Assertion assertion, @Nonnull ValidationContext context) throws AssertionValidationException - Specified by:
validate
in interfaceStatementValidator
- Overrides:
validate
in classAuthnStatementValidator
- Throws:
AssertionValidationException
-
validate
protected ValidationResult validate(AuthnStatement statement, Assertion assertion, ValidationContext context) throws AssertionValidationException Validates theAuthnStatement
.- Parameters:
statement
- the statement to validateassertion
- the assertion containing the statementcontext
- validation context- Returns:
- validation result
- Throws:
AssertionValidationException
- for internal validation errors
-
validateAuthnInstant
@Nonnull protected ValidationResult validateAuthnInstant(@Nonnull AuthnStatement statement, @Nonnull Assertion assertion, @Nonnull ValidationContext context) Validates theAuthnInstant
of theAuthnStatement
.- Overrides:
validateAuthnInstant
in classAuthnStatementValidator
- Parameters:
statement
- the statementassertion
- the assertion containing the statementcontext
- validation context- Returns:
- validation result
-
validateSsoAndSession
protected ValidationResult validateSsoAndSession(Instant authnInstant, AuthnStatement statement, Assertion assertion, ValidationContext context) Makes checks for SSO and session lengths.- Parameters:
authnInstant
- the authentication instantstatement
- the statementassertion
- the assertion containing the statementcontext
- validation context- Returns:
- validation result
-
getMaxAcceptedSsoSessionTime
Gets the maximum time we allow for SSO sessions.- Parameters:
context
- the validation context- Returns:
- the max time, or null if the time is not set
-
getForceAuthnFlag
Gets theForceAuthn
flag from the validation context. The method primarily checks for theAUTHN_REQUEST_FORCE_AUTHN
parameter, and that does not exist, tries with theCoreValidatorParameters.AUTHN_REQUEST
parameter.- Parameters:
context
- the validation context- Returns:
- the
ForceAuthn
flag ornull
if this is not set
-
getAuthnRequestIssueInstant
Gets the issue instant of theAuthnRequest
from the validation context. The method primarily checks for theAUTHN_REQUEST_ISSUE_INSTANT
parameter, and that does not exist, tries with theCoreValidatorParameters.AUTHN_REQUEST
parameter.- Parameters:
context
- the validation context- Returns:
- the issuance time or null if not set
-
validateSessionIndex
protected ValidationResult validateSessionIndex(AuthnStatement statement, Assertion assertion, ValidationContext context) Default implementation does not perform any checks and returnsValidationResult.VALID
.- Parameters:
statement
- the statementassertion
- the assertioncontext
- the validation context- Returns:
- validation result
-
validateSessionNotOnOrAfter
protected ValidationResult validateSessionNotOnOrAfter(AuthnStatement statement, Assertion assertion, ValidationContext context) Default implementation does not perform any checks and returnsValidationResult.VALID
.- Parameters:
statement
- the statementassertion
- the assertioncontext
- the validation context- Returns:
- validation result
-
validateAuthnContext
@Nonnull protected ValidationResult validateAuthnContext(@Nonnull AuthnStatement statement, @Nonnull Assertion assertion, @Nonnull ValidationContext context) Default implementation will only assert that theAuthnContext
element is present.- Overrides:
validateAuthnContext
in classAuthnStatementValidator
- Parameters:
statement
- the statementassertion
- the assertioncontext
- the validation context- Returns:
- validation result
-