Class SAMLSubjectNameIdentifierContext

  • All Implemented Interfaces:
    Iterable<org.opensaml.messaging.context.BaseContext>

    public final class SAMLSubjectNameIdentifierContext
    extends org.opensaml.messaging.context.BaseContext
    A context implementation which represents a SAML 1 NameIdentifier or a SAML 2 NameID.

    The methods getSubjectNameIdentifier(), getSAML1SubjectNameIdentifier() and getSAML2SubjectNameID() will attempt to dynamically resolve the appropriate data from the SAML message held in the parent message context if the data has not been set statically by the corresponding setter method. This evaluation will be attempted only if:

    • this context instance is an immediate child of a MessageContext as returned by BaseContext.getParent()
    • that message context holds a SAML 1 or 2 protocol message as an instance of SAMLObject
    • that SAML message is a type that may carry a subject: SubjectQuery, SubjectQuery or AuthnRequest.
    • Field Detail

      • log

        @Nullable
        private org.slf4j.Logger log
        Logger.
      • nameID

        @Nullable
        private SAMLObject nameID
        The SAML name identifier represented by this context.
    • Constructor Detail

      • SAMLSubjectNameIdentifierContext

        public SAMLSubjectNameIdentifierContext()
    • Method Detail

      • getSubjectNameIdentifier

        @Nullable
        public SAMLObject getSubjectNameIdentifier()
        Gets the subject name identifier represented by the context, which is guaranteed to be either a SAML 1 NameIdentifier or a SAML 2 NameID.

        The value will be dynamically resolved if the immediate parent context of this context is a MessageContext holding a SAMLObject representing a SAML protocol message, and that protocol message contains a SAML 1 or SAML 2 subject.

        Returns:
        the name identifier instance, may be null
      • getSAML2SubjectNameID

        @Nullable
        public NameID getSAML2SubjectNameID()
        Gets the SAML 2 NameID represented by this context.

        Dynamic resolution is attempted per getSubjectNameIdentifier().

        Returns:
        the name identifier instance or null
      • setSubjectNameIdentifier

        public void setSubjectNameIdentifier​(@Nullable
                                             SAMLObject newNameID)
        Sets the name identifier, which must be either a SAML 1 NameIdentifier or a SAML 2 NameID or null.
        Parameters:
        newNameID - the name identifier instance
      • resolveNameIdentifier

        @Nullable
        protected SAMLObject resolveNameIdentifier()
        Dynamically resolve the name identifier from the SAML protocol message held in MessageContext.getMessage(), if it exists.
        Returns:
        the name identifier, or null if it can not be resolved
      • resolveSAMLMessage

        @Nullable
        protected SAMLObject resolveSAMLMessage()
        Resolve the SAML message from the message context.
        Returns:
        the SAML message, or null if it can not be resolved