Class DefaultAssertionValidationContextBuilder

    • Constructor Detail

      • DefaultAssertionValidationContextBuilder

        public DefaultAssertionValidationContextBuilder()
        Constructor.
    • Method Detail

      • getRequiredConditions

        @Nonnull
        public Set<QName> getRequiredConditions()
        Get the set of required Conditions.
        Returns:
        the required conditions, may be null
      • setRequiredConditions

        public void setRequiredConditions​(@Nullable
                                          Set<QName> conditions)
        Set the set of required Conditions.
        Parameters:
        conditions - the required conditions
      • getIncludeSelfEntityIDAsRecipient

        public Predicate<ProfileRequestContext> getIncludeSelfEntityIDAsRecipient()
        Get the predicate which determines whether to include the self entityID as a valid Recipient.

        Defaults to an always false predicate;

        Returns:
        the predicate
      • setIncludeSelfEntityIDAsRecipient

        public void setIncludeSelfEntityIDAsRecipient​(@Nonnull
                                                      Predicate<ProfileRequestContext> predicate)
        Set the predicate which determines whether to include the self entityID as a valid Recipient.

        Defaults to an always false predicate.

        Parameters:
        predicate - the predicate, must be non-null
      • getSignatureRequired

        public Predicate<ProfileRequestContext> getSignatureRequired()
        Get the predicate which determines whether an Assertion signature is required.

        Defaults to an always true predicate;

        Returns:
        the predicate
      • setSignatureRequired

        public void setSignatureRequired​(@Nonnull
                                         Predicate<ProfileRequestContext> predicate)
        Set the predicate which determines whether an Assertion signature is required.

        Defaults to an always true predicate.

        Parameters:
        predicate - the predicate, must be non-null
      • setInResponseTo

        public void setInResponseTo​(@Nonnull
                                    Function<ProfileRequestContext,​String> function)
        Set the function for determining the valid InResponseTo.

        Defaults to null.

        Parameters:
        function - the function, may be null
      • getInResponseTo

        public Function<ProfileRequestContext,​String> getInResponseTo()
        Get the function for determining the valid InResponseTo.

        Defaults to null.

        Returns:
        the function
      • getInResponseToRequired

        public Predicate<ProfileRequestContext> getInResponseToRequired()
        Get the predicate which determines whether an Assertion SubjectConfirmationData InResponseTo is required.

        Defaults to an always false predicate;

        Returns:
        the predicate
      • setInResponseToRequired

        public void setInResponseToRequired​(@Nonnull
                                            Predicate<ProfileRequestContext> predicate)
        Set the predicate which determines whether an Assertion SubjectConfirmationData InResponseTo is required.

        Defaults to an always false predicate.

        Parameters:
        predicate - the predicate, must be non-null
      • getRecipientRequired

        public Predicate<ProfileRequestContext> getRecipientRequired()
        Get the predicate which determines whether an Assertion SubjectConfirmationData Recipient is required.

        Defaults to an always false predicate;

        Returns:
        the predicate
      • setRecipientRequired

        public void setRecipientRequired​(@Nonnull
                                         Predicate<ProfileRequestContext> predicate)
        Set the predicate which determines whether an Assertion SubjectConfirmationData Recipient is required.

        Defaults to an always false predicate.

        Parameters:
        predicate - the predicate, must be non-null
      • getNotBeforeRequired

        public Predicate<ProfileRequestContext> getNotBeforeRequired()
        Get the predicate which determines whether an Assertion SubjectConfirmationData NotBefore is required.

        Defaults to an always false predicate;

        Returns:
        the predicate
      • setNotBeforeRequired

        public void setNotBeforeRequired​(@Nonnull
                                         Predicate<ProfileRequestContext> predicate)
        Set the predicate which determines whether an Assertion SubjectConfirmationData NotBefore is required.

        Defaults to an always false predicate.

        Parameters:
        predicate - the predicate, must be non-null
      • getNotOnOrAfterRequired

        public Predicate<ProfileRequestContext> getNotOnOrAfterRequired()
        Get the predicate which determines whether an Assertion SubjectConfirmationData NotOnOrAfter is required.

        Defaults to an always false predicate;

        Returns:
        the predicate
      • setNotOnOrAfterRequired

        public void setNotOnOrAfterRequired​(@Nonnull
                                            Predicate<ProfileRequestContext> predicate)
        Set the predicate which determines whether an Assertion SubjectConfirmationData NotOnOrAfter is required.

        Defaults to an always false predicate.

        Parameters:
        predicate - the predicate, must be non-null
      • getAddressRequired

        public Predicate<ProfileRequestContext> getAddressRequired()
        Get the predicate which determines whether an Assertion SubjectConfirmationData Address is required.

        Defaults to an always false predicate;

        Returns:
        the predicate
      • setAddressRequired

        public void setAddressRequired​(@Nonnull
                                       Predicate<ProfileRequestContext> predicate)
        Set the predicate which determines whether an Assertion SubjectConfirmationData Address is required.

        Defaults to an always false predicate.

        Parameters:
        predicate - the predicate, must be non-null
      • getCheckAddress

        public Predicate<ProfileRequestContext> getCheckAddress()
        Get the predicate which determines whether an Assertion's network address(es) should be checked.

        Defaults to an always true predicate;

        Returns:
        the predicate
      • setCheckAddress

        public void setCheckAddress​(@Nonnull
                                    Predicate<ProfileRequestContext> predicate)
        Set the predicate which determines whether an Assertion's network address(es) should be checked.

        Defaults to an always true predicate.

        Parameters:
        predicate - the predicate, must be non-null
      • getAdditionalAudiences

        public Function<ProfileRequestContext,​Set<String>> getAdditionalAudiences()
        Get the function for determining additional audience values.

        Defaults to null.

        Returns:
        the function
      • setAdditionalAudiences

        public void setAdditionalAudiences​(@Nonnull
                                           Function<ProfileRequestContext,​Set<String>> function)
        Set the function for determining additional audience values.

        Defaults to null.

        Parameters:
        function - the function, may be null
      • getValidIssuers

        public Function<ProfileRequestContext,​Set<String>> getValidIssuers()
        Get the function for determining the valid Issuer values

        Defaults to an implementation which resolves the outbound SAML peer entityID.

        Returns:
        the function
      • setValidIssuers

        public void setValidIssuers​(@Nonnull
                                    Function<ProfileRequestContext,​Set<String>> function)
        Set the function for determining the valid Issuer values

        Defaults to an implementation which resolves the outbound SAML peer entityID.

        Parameters:
        function - the function, may be null
      • getMaximumTimeSinceAuthn

        public Function<ProfileRequestContext,​Duration> getMaximumTimeSinceAuthn()
        Get the function for determining the max allowed time since authentication.

        Defaults to null.

        Returns:
        the function
      • setMaximumTimeSinceAuthn

        public void setMaximumTimeSinceAuthn​(@Nonnull
                                             Function<ProfileRequestContext,​Duration> function)
        Set the function for determining the max allowed time since authentication.

        Defaults to null.

        Parameters:
        function - the function, may be null
      • getSignatureCriteriaSetFunction

        @Nullable
        public Function<Pair<ProfileRequestContext,​Assertion>,​CriteriaSet> getSignatureCriteriaSetFunction()
        Get the function for resolving the signature validation CriteriaSet for a particular function.

        Defaults to: null.

        Returns:
        a criteria set instance, or null
      • setSignatureCriteriaSetFunction

        public void setSignatureCriteriaSetFunction​(@Nullable
                                                    Function<Pair<ProfileRequestContext,​Assertion>,​CriteriaSet> function)
        Set the function for resolving the signature validation CriteriaSet for a particular function.

        Defaults to: null.

        Parameters:
        function - the resolving function, may be null
      • populateSignatureParameters

        private void populateSignatureParameters​(@Nonnull
                                                 Map<String,​Object> staticParams,
                                                 @Nonnull
                                                 ValidateAssertions.AssertionValidationInput input)
        Populate the static signature parameters.
        Parameters:
        staticParams - the parameters being populated
        input - validation input
      • populateConditionsParameters

        private void populateConditionsParameters​(@Nonnull
                                                  Map<String,​Object> staticParams,
                                                  @Nonnull
                                                  ValidateAssertions.AssertionValidationInput input)
        Populate the static Conditions parameters.
        Parameters:
        staticParams - the parameters being populated
        input - validation input
      • populateSubjectConfirmationParameters

        private void populateSubjectConfirmationParameters​(@Nonnull
                                                           Map<String,​Object> staticParams,
                                                           @Nonnull
                                                           ValidateAssertions.AssertionValidationInput input,
                                                           @Nonnull
                                                           Set<InetAddress> validAddresses,
                                                           @Nonnull
                                                           Boolean checkAddressEnabled)
        Populate the static SubjectConfirmation parameters.
        Parameters:
        staticParams - the parameters being populated
        input - validation input
        validAddresses - the valid addresses
        checkAddressEnabled - whether address checking is enabled
      • populateStatementParams

        private void populateStatementParams​(@Nonnull
                                             Map<String,​Object> staticParams,
                                             @Nonnull
                                             ValidateAssertions.AssertionValidationInput input,
                                             @Nonnull
                                             Set<InetAddress> validAddresses,
                                             @Nonnull
                                             Boolean checkAddressEnabled)
        Populate the static Statement params.
        Parameters:
        staticParams - the parameters being populated
        input - validation input
        validAddresses - the valid addresses
        checkAddressEnabled - whether address checking is enabled
      • getRequiredConditions

        @Nonnull
        protected Set<QName> getRequiredConditions​(@Nonnull
                                                   ValidateAssertions.AssertionValidationInput input)
        Get the set of required Conditions.

        The default behavior is to return the locally-configured data via getRequiredConditions().

        Parameters:
        input - the assertion validation input
        Returns:
        the set of required Condition names, may be null
      • getAttesterCertificate

        @Nullable
        protected X509Certificate getAttesterCertificate​(@Nonnull
                                                         ValidateAssertions.AssertionValidationInput input)
        Get the attesting entity's X509Certificate.

        This implementation returns the client TLS certificate present in the HttpServletRequest, or null if one is not present.

        Parameters:
        input - the assertion validation input
        Returns:
        the entity certificate, or null
      • getAttesterPublicKey

        @Nullable
        protected PublicKey getAttesterPublicKey​(@Nonnull
                                                 ValidateAssertions.AssertionValidationInput input)
        Get the attesting entity's PublicKey.

        This implementation returns null. Subclasses should override to implement specific logic.

        Parameters:
        input - the assertion validation input
        Returns:
        the entity public key, or null
      • getAttesterIPAddress

        @Nonnull
        protected String getAttesterIPAddress​(@Nonnull
                                              ValidateAssertions.AssertionValidationInput input)
        Get the attester's IP address.

        This implementation returns the value of ServletRequest.getRemoteAddr().

        Parameters:
        input - the assertion validation input
        Returns:
        the IP address of the attester
      • getSelfEntityID

        @Nullable
        protected String getSelfEntityID​(@Nonnull
                                         ValidateAssertions.AssertionValidationInput input)
        Get the self entityID.
        Parameters:
        input - the assertion validation input
        Returns:
        the self entityID, or null if could not be resolved