Class GenericPrincipal

    • Field Detail

      • name

        protected final String name
        The username of the user represented by this Principal.
      • roles

        protected final String[] roles
        The set of roles associated with this user.
      • userPrincipal

        protected final Principal userPrincipal
        The authenticated Principal to be exposed to applications.
      • loginContext

        protected final transient LoginContext loginContext
        The JAAS LoginContext, if any, used to authenticate this Principal. Kept so we can call logout().
      • gssCredential

        protected transient GSSCredential gssCredential
        The user's delegated credentials.
    • Constructor Detail

      • GenericPrincipal

        public GenericPrincipal​(String name)
        Construct a new Principal, associated with the specified Realm, for the specified username, with no roles.
        Parameters:
        name - The username of the user represented by this Principal
      • GenericPrincipal

        public GenericPrincipal​(String name,
                                List<String> roles)
        Construct a new Principal, associated with the specified Realm, for the specified username, with the specified role names (as Strings).
        Parameters:
        name - The username of the user represented by this Principal
        roles - List of roles (must be Strings) possessed by this user
      • GenericPrincipal

        @Deprecated
        public GenericPrincipal​(String name,
                                String password,
                                List<String> roles)
        Deprecated.
        This method will be removed in Tomcat 11 onwards
        Construct a new Principal, associated with the specified Realm, for the specified username, with the specified role names (as Strings).
        Parameters:
        name - The username of the user represented by this Principal
        password - Unused
        roles - List of roles (must be Strings) possessed by this user
      • GenericPrincipal

        public GenericPrincipal​(String name,
                                List<String> roles,
                                Principal userPrincipal)
        Construct a new Principal, associated with the specified Realm, for the specified username, with the specified role names (as Strings).
        Parameters:
        name - The username of the user represented by this Principal
        roles - List of roles (must be Strings) possessed by this user
        userPrincipal - - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returned
      • GenericPrincipal

        @Deprecated
        public GenericPrincipal​(String name,
                                String password,
                                List<String> roles,
                                Principal userPrincipal)
        Deprecated.
        This method will be removed in Tomcat 11 onwards
        Construct a new Principal, associated with the specified Realm, for the specified username, with the specified role names (as Strings).
        Parameters:
        name - The username of the user represented by this Principal
        password - Unused
        roles - List of roles (must be Strings) possessed by this user
        userPrincipal - - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returned
      • GenericPrincipal

        public GenericPrincipal​(String name,
                                List<String> roles,
                                Principal userPrincipal,
                                LoginContext loginContext)
        Construct a new Principal, associated with the specified Realm, for the specified username, with the specified role names (as Strings).
        Parameters:
        name - The username of the user represented by this Principal
        roles - List of roles (must be Strings) possessed by this user
        userPrincipal - - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returned
        loginContext - - If provided, this will be used to log out the user at the appropriate time
      • GenericPrincipal

        @Deprecated
        public GenericPrincipal​(String name,
                                String password,
                                List<String> roles,
                                Principal userPrincipal,
                                LoginContext loginContext)
        Deprecated.
        This method will be removed in Tomcat 11 onwards
        Construct a new Principal, associated with the specified Realm, for the specified username, with the specified role names (as Strings).
        Parameters:
        name - The username of the user represented by this Principal
        password - Unused
        roles - List of roles (must be Strings) possessed by this user
        userPrincipal - - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returned
        loginContext - - If provided, this will be used to log out the user at the appropriate time
      • GenericPrincipal

        public GenericPrincipal​(String name,
                                List<String> roles,
                                Principal userPrincipal,
                                LoginContext loginContext,
                                GSSCredential gssCredential)
        Construct a new Principal, associated with the specified Realm, for the specified username, with the specified role names (as Strings).
        Parameters:
        name - The username of the user represented by this Principal
        roles - List of roles (must be Strings) possessed by this user
        userPrincipal - - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returned
        loginContext - - If provided, this will be used to log out the user at the appropriate time
        gssCredential - - If provided, the user's delegated credentials
      • GenericPrincipal

        @Deprecated
        public GenericPrincipal​(String name,
                                String password,
                                List<String> roles,
                                Principal userPrincipal,
                                LoginContext loginContext,
                                GSSCredential gssCredential)
        Deprecated.
        This method will be removed in Tomcat 11 onwards
        Construct a new Principal, associated with the specified Realm, for the specified username, with the specified role names (as Strings).
        Parameters:
        name - The username of the user represented by this Principal
        password - Unused
        roles - List of roles (must be Strings) possessed by this user
        userPrincipal - - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returned
        loginContext - - If provided, this will be used to log out the user at the appropriate time
        gssCredential - - If provided, the user's delegated credentials
    • Method Detail

      • getRoles

        public String[] getRoles()
      • setGssCredential

        protected void setGssCredential​(GSSCredential gssCredential)
      • hasRole

        public boolean hasRole​(String role)
        Does the user represented by this Principal possess the specified role?
        Parameters:
        role - Role to be tested
        Returns:
        true if this Principal has been assigned the given role, otherwise false
      • toString

        public String toString()
        Return a String representation of this object, which exposes only information that should be public.
        Specified by:
        toString in interface Principal
        Overrides:
        toString in class Object
      • logout

        public void logout()
                    throws Exception
        Description copied from interface: TomcatPrincipal
        Calls logout, if necessary, on any associated JAASLoginContext and/or GSSContext. May in the future be extended to cover other logout requirements.
        Specified by:
        logout in interface TomcatPrincipal
        Throws:
        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