Interface TomcatPrincipal

  • All Superinterfaces:
    java.security.Principal
    All Known Implementing Classes:
    GenericPrincipal, UserDatabaseRealm.UserDatabasePrincipal

    public interface TomcatPrincipal
    extends java.security.Principal
    Defines additional methods implemented by Principals created by Tomcat's standard Realm implementations.
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default java.lang.Object getAttribute​(java.lang.String name)
      Returns the value of the named attribute as an Object, or null if no attribute of the given name exists, or if null has been specified as the attribute's name.
      default java.util.Enumeration<java.lang.String> getAttributeNames()
      Returns an Enumeration containing the names of the attributes available to this Principal.
      org.ietf.jgss.GSSCredential getGssCredential()  
      java.security.Principal getUserPrincipal()  
      void logout()
      Calls logout, if necessary, on any associated JAASLoginContext and/or GSSContext.
      • Methods inherited from interface java.security.Principal

        equals, getName, hashCode, implies, toString
    • Method Detail

      • getUserPrincipal

        java.security.Principal getUserPrincipal()
        Returns:
        The authenticated Principal to be exposed to applications.
      • getGssCredential

        org.ietf.jgss.GSSCredential getGssCredential()
        Returns:
        The user's delegated credentials.
      • logout

        void logout()
             throws java.lang.Exception
        Calls logout, if necessary, on any associated JAASLoginContext and/or GSSContext. May in the future be extended to cover other logout requirements.
        Throws:
        java.lang.Exception - If something goes wrong with the logout. Uses Exception to allow for future expansion of this method to cover other logout mechanisms that might throw a different exception to LoginContext
      • getAttribute

        default java.lang.Object getAttribute​(java.lang.String name)
        Returns the value of the named attribute as an Object, or null if no attribute of the given name exists, or if null has been specified as the attribute's name.

        Only the servlet container may set attributes to make available custom information about a Principal or the user it represents.

        The purpose of the method is to implement read only access to attributes which may be stored in the Realm implementation's backend due to its inherent design.

        As using this method from application code will make it non portable to other EE compliant containers, it is advised this should never be used as an object storage facility tied to the Principal, but rather as simple extra additional metadata. It is recommended that a container level object is used to further process the attributes that may be associated with the Principal.

        Realm implementations that are provided by Tomcat will not provide complex type mapping, but will in most cases always return a result as a String object which may need custom decoding.

        Realm implementations that are provided by Tomcat will not provide an implementation for this facility unless it is inherent to the storage backend of the Realm itself and metadata is available without additional user intervention or configuration.

        Parameters:
        name - a String specifying the name of the attribute
        Returns:
        an Object containing the value of the attribute, or null if the attribute does not exist, or if null has been specified as the attribute's name
      • getAttributeNames

        default java.util.Enumeration<java.lang.String> getAttributeNames()
        Returns an Enumeration containing the names of the attributes available to this Principal. This method returns an empty Enumeration if the Principal has no attributes available to it.
        Returns:
        an Enumeration of strings containing the names of the Principal's attributes