## Uses of Class
javax.security.auth.Subject

- Packages that use Subject
  Package | Description
  --- | ---
  com.sun.security.auth | Provides implementations of `Principal`.
  com.sun.security.auth.module | Provides implementations of `LoginModule`.
  com.sun.security.jgss | This package defines classes and interfaces for the JDK extensions to the GSS-API.
  java.security | Provides the classes and interfaces for the security framework.
  javax.management.remote | Interfaces for remote access to JMX MBean servers.
  javax.management.remote.rmi | The RMI connector is a connector for the JMX Remote API that uses RMI to transmit client requests to a remote MBean server.
  javax.security.auth | This package provides a framework for authentication and authorization.
  javax.security.auth.login | This package provides a pluggable authentication framework.
  javax.security.auth.spi | This package provides the interface to be used for implementing pluggable authentication modules.

- - ### Uses of Subject in com.sun.security.auth

    Methods in com.sun.security.auth with parameters of type Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | PrincipalComparator.`implies​(Subject subject)` | Check if the specified `Subject` is implied by this object.

  - ### Uses of Subject in com.sun.security.auth.module

    Methods in com.sun.security.auth.module with parameters of type Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | JndiLoginModule.`initialize​(Subject subject, CallbackHandler callbackHandler, Map<String,​?> sharedState, Map<String,​?> options)` | Initialize this `LoginModule`.
    `void` | KeyStoreLoginModule.`initialize​(Subject subject, CallbackHandler callbackHandler, Map<String,​?> sharedState, Map<String,​?> options)` | Initialize this `LoginModule`.
    `void` | Krb5LoginModule.`initialize​(Subject subject, CallbackHandler callbackHandler, Map<String,​?> sharedState, Map<String,​?> options)` | Initialize this `LoginModule`.
    `void` | LdapLoginModule.`initialize​(Subject subject, CallbackHandler callbackHandler, Map<String,​?> sharedState, Map<String,​?> options)` | Initialize this `LoginModule`.
    `void` | NTLoginModule.`initialize​(Subject subject, CallbackHandler callbackHandler, Map<String,​?> sharedState, Map<String,​?> options)` | Initialize this `LoginModule`.
    `void` | UnixLoginModule.`initialize​(Subject subject, CallbackHandler callbackHandler, Map<String,​?> sharedState, Map<String,​?> options)` | Initialize this `LoginModule`.

  - ### Uses of Subject in com.sun.security.jgss

    Methods in com.sun.security.jgss that return Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Subject` | GSSUtil.`createSubject​(GSSName principals, GSSCredential credentials)` | Use this method to convert a GSSName and GSSCredential into a Subject.

  - ### Uses of Subject in java.security

    Methods in java.security with parameters of type Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `default boolean` | Principal.`implies​(Subject subject)` | Returns true if the specified subject is implied by this principal.
    `abstract void` | AuthProvider.`login​(Subject subject, CallbackHandler handler)` | Log in to this provider.

  - ### Uses of Subject in javax.management.remote

    Methods in javax.management.remote that return Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `Subject` | JMXAuthenticator.`authenticate​(Object credentials)` | Authenticates the `MBeanServerConnection` client with the given client credentials.

    Methods in javax.management.remote with parameters of type Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `MBeanServerConnection` | JMXConnector.`getMBeanServerConnection​(Subject delegationSubject)` | Returns an `MBeanServerConnection` object representing a remote MBean server on which operations are performed on behalf of the supplied delegation subject.

  - ### Uses of Subject in javax.management.remote.rmi

    Methods in javax.management.remote.rmi with parameters of type Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | RMIConnection.`addNotificationListener​(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject)` | Handles the method `MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)`.
    `Integer[]` | RMIConnection.`addNotificationListeners​(ObjectName[] names, MarshalledObject[] filters, Subject[] delegationSubjects)` | Handles the method `MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)`.
    `ObjectInstance` | RMIConnection.`createMBean​(String className, ObjectName name, MarshalledObject params, String[] signature, Subject delegationSubject)` | Handles the method `MBeanServerConnection.createMBean(String, ObjectName, Object[], String[])`.
    `ObjectInstance` | RMIConnection.`createMBean​(String className, ObjectName name, ObjectName loaderName, MarshalledObject params, String[] signature, Subject delegationSubject)` | Handles the method `MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[])`.
    `ObjectInstance` | RMIConnection.`createMBean​(String className, ObjectName name, ObjectName loaderName, Subject delegationSubject)` | Handles the method `MBeanServerConnection.createMBean(String, ObjectName, ObjectName)`.
    `ObjectInstance` | RMIConnection.`createMBean​(String className, ObjectName name, Subject delegationSubject)` | Handles the method `MBeanServerConnection.createMBean(String, ObjectName)`.
    `Object` | RMIConnection.`getAttribute​(ObjectName name, String attribute, Subject delegationSubject)` | Handles the method `MBeanServerConnection.getAttribute(ObjectName, String)`.
    `AttributeList` | RMIConnection.`getAttributes​(ObjectName name, String[] attributes, Subject delegationSubject)` | Handles the method `MBeanServerConnection.getAttributes(ObjectName, String[])`.
    `String` | RMIConnection.`getDefaultDomain​(Subject delegationSubject)` | Handles the method `MBeanServerConnection.getDefaultDomain()`.
    `String[]` | RMIConnection.`getDomains​(Subject delegationSubject)` | Handles the method `MBeanServerConnection.getDomains()`.
    `Integer` | RMIConnection.`getMBeanCount​(Subject delegationSubject)` | Handles the method `MBeanServerConnection.getMBeanCount()`.
    `MBeanInfo` | RMIConnection.`getMBeanInfo​(ObjectName name, Subject delegationSubject)` | Handles the method `MBeanServerConnection.getMBeanInfo(ObjectName)`.
    `ObjectInstance` | RMIConnection.`getObjectInstance​(ObjectName name, Subject delegationSubject)` | Handles the method `MBeanServerConnection.getObjectInstance(ObjectName)`.
    `Object` | RMIConnection.`invoke​(ObjectName name, String operationName, MarshalledObject params, String[] signature, Subject delegationSubject)` | Handles the method `MBeanServerConnection.invoke(ObjectName, String, Object[], String[])`.
    `boolean` | RMIConnection.`isInstanceOf​(ObjectName name, String className, Subject delegationSubject)` | Handles the method `MBeanServerConnection.isInstanceOf(ObjectName, String)`.
    `boolean` | RMIConnection.`isRegistered​(ObjectName name, Subject delegationSubject)` | Handles the method `MBeanServerConnection.isRegistered(ObjectName)`.
    `protected RMIConnection` | RMIJRMPServerImpl.`makeClient​(String connectionId, Subject subject)` | Creates a new client connection as an RMI object exported through JRMP.
    `protected abstract RMIConnection` | RMIServerImpl.`makeClient​(String connectionId, Subject subject)` | Creates a new client connection.
    `Set<ObjectInstance>` | RMIConnection.`queryMBeans​(ObjectName name, MarshalledObject query, Subject delegationSubject)` | Handles the method `MBeanServerConnection.queryMBeans(ObjectName, QueryExp)`.
    `Set<ObjectName>` | RMIConnection.`queryNames​(ObjectName name, MarshalledObject query, Subject delegationSubject)` | Handles the method `MBeanServerConnection.queryNames(ObjectName, QueryExp)`.
    `void` | RMIConnection.`removeNotificationListener​(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject)` | Handles the method `MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)`.
    `void` | RMIConnection.`removeNotificationListener​(ObjectName name, ObjectName listener, Subject delegationSubject)` | Handles the method `MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName)`.
    `void` | RMIConnection.`removeNotificationListeners​(ObjectName name, Integer[] listenerIDs, Subject delegationSubject)` | Handles the `removeNotificationListener(ObjectName, NotificationListener)` and `removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)` methods.
    `void` | RMIConnection.`setAttribute​(ObjectName name, MarshalledObject attribute, Subject delegationSubject)` | Handles the method `MBeanServerConnection.setAttribute(ObjectName, Attribute)`.
    `AttributeList` | RMIConnection.`setAttributes​(ObjectName name, MarshalledObject attributes, Subject delegationSubject)` | Handles the method `MBeanServerConnection.setAttributes(ObjectName, AttributeList)`.
    `void` | RMIConnection.`unregisterMBean​(ObjectName name, Subject delegationSubject)` | Handles the method `MBeanServerConnection.unregisterMBean(ObjectName)`.

    Constructors in javax.management.remote.rmi with parameters of type Subject
    Constructor | Description
    --- | ---
    `RMIConnectionImpl​(RMIServerImpl rmiServer, String connectionId, ClassLoader defaultClassLoader, Subject subject, Map<String,​?> env)` | Constructs a new `RMIConnection`.

  - ### Uses of Subject in javax.security.auth

    Methods in javax.security.auth that return Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Subject` | Subject.`getSubject​(AccessControlContext acc)` | Get the `Subject` associated with the provided `AccessControlContext`.
    `Subject` | SubjectDomainCombiner.`getSubject()` | Get the `Subject` associated with this `SubjectDomainCombiner`.

    Methods in javax.security.auth with parameters of type Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T> T` | Subject.`doAs​(Subject subject, PrivilegedAction<T> action)` | Perform work as a particular `Subject`.
    `static <T> T` | Subject.`doAs​(Subject subject, PrivilegedExceptionAction<T> action)` | Perform work as a particular `Subject`.
    `static <T> T` | Subject.`doAsPrivileged​(Subject subject, PrivilegedAction<T> action, AccessControlContext acc)` | Perform privileged work as a particular `Subject`.
    `static <T> T` | Subject.`doAsPrivileged​(Subject subject, PrivilegedExceptionAction<T> action, AccessControlContext acc)` | Perform privileged work as a particular `Subject`.

    Constructors in javax.security.auth with parameters of type Subject
    Constructor | Description
    --- | ---
    `SubjectDomainCombiner​(Subject subject)` | Associate the provided `Subject` with this `SubjectDomainCombiner`.

  - ### Uses of Subject in javax.security.auth.login

    Methods in javax.security.auth.login that return Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `Subject` | LoginContext.`getSubject()` | Return the authenticated Subject.

    Constructors in javax.security.auth.login with parameters of type Subject
    Constructor | Description
    --- | ---
    `LoginContext​(String name, Subject subject)` | Instantiate a new `LoginContext` object with a name and a `Subject` object.
    `LoginContext​(String name, Subject subject, CallbackHandler callbackHandler)` | Instantiate a new `LoginContext` object with a name, a `Subject` to be authenticated, and a `CallbackHandler` object.
    `LoginContext​(String name, Subject subject, CallbackHandler callbackHandler, Configuration config)` | Instantiate a new `LoginContext` object with a name, a `Subject` to be authenticated, a `CallbackHandler` object, and a login `Configuration`.

  - ### Uses of Subject in javax.security.auth.spi

    Methods in javax.security.auth.spi with parameters of type Subject
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | LoginModule.`initialize​(Subject subject, CallbackHandler callbackHandler, Map<String,​?> sharedState, Map<String,​?> options)` | Initialize this LoginModule.