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

## Interface ActiveMQSecurityManager5

- All Superinterfaces:
    ActiveMQSecurityManager
  All Known Implementing Classes:
    ActiveMQBasicSecurityManager, ActiveMQJAASSecurityManager

      public interface ActiveMQSecurityManager5
      extends ActiveMQSecurityManager

  Used to validate whether a user is authorized to connect to the server and perform certain functions on certain addresses This is an evolution of `ActiveMQSecurityManager4` that integrates with the new Subject caching functionality.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Subject` | `authenticate(String user, String password, RemotingConnection remotingConnection, String securityDomain)` is this a valid user.
    `boolean` | `authorize(Subject subject, Set<org.apache.activemq.artemis.core.security.Role> roles, org.apache.activemq.artemis.core.security.CheckType checkType, String address)` Determine whether the given user has the correct role for the given check type.

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

      `getDomain, init, validateUser, validateUserAndRole`

- - ### Method Detail

    - #### authenticate

          Subject authenticate(String user,
                               String password,
                               RemotingConnection remotingConnection,
                               String securityDomain)

      is this a valid user. This method is called instead of `ActiveMQSecurityManager.validateUser(String, String)`.
      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

    - #### authorize

          boolean authorize(Subject subject,
                            Set<org.apache.activemq.artemis.core.security.Role> roles,
                            org.apache.activemq.artemis.core.security.CheckType checkType,
                            String address)

      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)`.
      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

Copyright © 2020 The Apache Software Foundation. All rights reserved.