Package org.apache.activemq.artemis.spi.core.security

## Class ActiveMQJAASSecurityManager

- java.lang.Object
- - org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager

- All Implemented Interfaces:
    `ActiveMQSecurityManager`, `ActiveMQSecurityManager5`

      public class ActiveMQJAASSecurityManager
      extends java.lang.Object
      implements ActiveMQSecurityManager5

  This implementation delegates to the JAAS security interfaces. The `Subject` returned by the login context is expecting to have a set of `RolePrincipal` for each role of the user.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ActiveMQJAASSecurityManager()` |
    `ActiveMQJAASSecurityManager​(java.lang.String configurationName)` |
    `ActiveMQJAASSecurityManager​(java.lang.String configurationName, java.lang.String certificateConfigurationName)` |
    `ActiveMQJAASSecurityManager​(java.lang.String configurationName, java.lang.String certificateConfigurationName, org.apache.activemq.artemis.core.config.impl.SecurityConfiguration configuration, org.apache.activemq.artemis.core.config.impl.SecurityConfiguration certificateConfiguration)` |
    `ActiveMQJAASSecurityManager​(java.lang.String configurationName, org.apache.activemq.artemis.core.config.impl.SecurityConfiguration configuration)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `javax.security.auth.Subject` | `authenticate​(java.lang.String user, java.lang.String password, RemotingConnection remotingConnection, java.lang.String securityDomain)` | is this a valid user.
    `boolean` | `authorize​(javax.security.auth.Subject subject, java.util.Set<org.apache.activemq.artemis.core.security.Role> roles, org.apache.activemq.artemis.core.security.CheckType checkType, java.lang.String address)` | Determine whether the given user has the correct role for the given check type.
    `org.apache.activemq.artemis.core.config.impl.SecurityConfiguration` | `getCertificateConfiguration()` |
    `org.apache.activemq.artemis.core.config.impl.SecurityConfiguration` | `getConfiguration()` |
    `java.lang.String` | `getDomain()` |
    `java.lang.String` | `getRolePrincipalClass()` |
    `void` | `setCertificateConfiguration​(org.apache.activemq.artemis.core.config.impl.SecurityConfiguration certificateConfiguration)` |
    `void` | `setCertificateConfigurationName​(java.lang.String certificateConfigurationName)` |
    `void` | `setConfiguration​(org.apache.activemq.artemis.core.config.impl.SecurityConfiguration configuration)` |
    `void` | `setConfigurationName​(java.lang.String configurationName)` |
    `void` | `setRolePrincipalClass​(java.lang.String rolePrincipalClass)` |
    `boolean` | `validateUser​(java.lang.String user, java.lang.String password)` | is this a valid user.
    `boolean` | `validateUserAndRole​(java.lang.String user, java.lang.String password, java.util.Set<org.apache.activemq.artemis.core.security.Role> roles, org.apache.activemq.artemis.core.security.CheckType checkType)` | is this a valid user and do they have the correct role

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager

      `init`

- - ### Constructor Detail

    - #### ActiveMQJAASSecurityManager

          public ActiveMQJAASSecurityManager()

    - #### ActiveMQJAASSecurityManager

          public ActiveMQJAASSecurityManager​(java.lang.String configurationName)

    - #### ActiveMQJAASSecurityManager

          public ActiveMQJAASSecurityManager​(java.lang.String configurationName,
                                             java.lang.String certificateConfigurationName)

    - #### ActiveMQJAASSecurityManager

          public ActiveMQJAASSecurityManager​(java.lang.String configurationName,
                                             org.apache.activemq.artemis.core.config.impl.SecurityConfiguration configuration)

    - #### ActiveMQJAASSecurityManager

          public ActiveMQJAASSecurityManager​(java.lang.String configurationName,
                                             java.lang.String certificateConfigurationName,
                                             org.apache.activemq.artemis.core.config.impl.SecurityConfiguration configuration,
                                             org.apache.activemq.artemis.core.config.impl.SecurityConfiguration certificateConfiguration)

  - ### Method Detail

    - #### getDomain

          public java.lang.String getDomain()

      Specified by:
        `getDomain` in interface `ActiveMQSecurityManager`

    - #### validateUser

          public boolean validateUser​(java.lang.String user,
                                      java.lang.String password)

      Description copied from interface: `ActiveMQSecurityManager`
      is this a valid user.
      Specified by:
        `validateUser` in interface `ActiveMQSecurityManager`
      Parameters:
        `user` - the user
        `password` - the users password
      Returns:
        true if a valid user

    - #### authenticate

          public javax.security.auth.Subject authenticate​(java.lang.String user,
                                                          java.lang.String password,
                                                          RemotingConnection remotingConnection,
                                                          java.lang.String securityDomain)

      Description copied from interface: `ActiveMQSecurityManager5`
      is this a valid user. This method is called instead of `ActiveMQSecurityManager.validateUser(String, String)`.
      Specified by:
        `authenticate` in interface `ActiveMQSecurityManager5`
      Parameters:
        `user` - the user
        `password` - the user's password
        `remotingConnection` - the user's connection which contains any corresponding SSL certs
        `securityDomain` - the name of the JAAS security domain to use (can be null)
      Returns:
        the Subject of the authenticated user, else null

    - #### validateUserAndRole

          public boolean validateUserAndRole​(java.lang.String user,
                                             java.lang.String password,
                                             java.util.Set<org.apache.activemq.artemis.core.security.Role> roles,
                                             org.apache.activemq.artemis.core.security.CheckType checkType)

      Description copied from interface: `ActiveMQSecurityManager`
      is this a valid user and do they have the correct role
      Specified by:
        `validateUserAndRole` in interface `ActiveMQSecurityManager`
      Parameters:
        `user` - the user
        `password` - the users password
        `roles` - the roles the user has
        `checkType` - the type of check to perform
      Returns:
        true if the user is valid and they have the correct roles

    - #### authorize

          public boolean authorize​(javax.security.auth.Subject subject,
                                   java.util.Set<org.apache.activemq.artemis.core.security.Role> roles,
                                   org.apache.activemq.artemis.core.security.CheckType checkType,
                                   java.lang.String address)

      Description copied from interface: `ActiveMQSecurityManager5`
      Determine whether the given user has the correct role for the given check type. This method is called instead of `ActiveMQSecurityManager.validateUserAndRole(String, String, Set, CheckType)`.
      Specified by:
        `authorize` in interface `ActiveMQSecurityManager5`
      Parameters:
        `subject` - the Subject to authorize
        `roles` - the roles configured in the security-settings
        `checkType` - which permission to validate
        `address` - the address (or FQQN) to grant access to
      Returns:
        true if the user is authorized, else false

    - #### setConfigurationName

          public void setConfigurationName​(java.lang.String configurationName)

    - #### setConfiguration

          public void setConfiguration​(org.apache.activemq.artemis.core.config.impl.SecurityConfiguration configuration)

    - #### setCertificateConfigurationName

          public void setCertificateConfigurationName​(java.lang.String certificateConfigurationName)

    - #### setCertificateConfiguration

          public void setCertificateConfiguration​(org.apache.activemq.artemis.core.config.impl.SecurityConfiguration certificateConfiguration)

    - #### getConfiguration

          public org.apache.activemq.artemis.core.config.impl.SecurityConfiguration getConfiguration()

    - #### getCertificateConfiguration

          public org.apache.activemq.artemis.core.config.impl.SecurityConfiguration getCertificateConfiguration()

    - #### getRolePrincipalClass

          public java.lang.String getRolePrincipalClass()

    - #### setRolePrincipalClass

          public void setRolePrincipalClass​(java.lang.String rolePrincipalClass)