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

## Interface ActiveMQSecurityManager4

- All Superinterfaces:
    ActiveMQSecurityManager

      public interface ActiveMQSecurityManager4
      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 `ActiveMQSecurityManager3` that adds the ability to specify the JAAS domain per call.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `validateUser(String user, String password, RemotingConnection remotingConnection, String securityDomain)` is this a valid user.
    `String` | `validateUserAndRole(String user, String password, Set<org.apache.activemq.artemis.core.security.Role> roles, org.apache.activemq.artemis.core.security.CheckType checkType, String address, RemotingConnection remotingConnection, String securityDomain)` Determine whether the given user is valid and whether they have the correct role for the given destination address.

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

      `getDomain, init, validateUser, validateUserAndRole`

- - ### Method Detail

    - #### validateUser

          String validateUser(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 users password
        `remotingConnection` -
        `securityDomain` - the name of the JAAS security domain to use (can be null)
      Returns:
        the name of the validated user or null if the user isn't validated

    - #### validateUserAndRole

          String validateUserAndRole(String user,
                                     String password,
                                     Set<org.apache.activemq.artemis.core.security.Role> roles,
                                     org.apache.activemq.artemis.core.security.CheckType checkType,
                                     String address,
                                     RemotingConnection remotingConnection,
                                     String securityDomain)

      Determine whether the given user is valid and whether they have the correct role for the given destination address. This method is called instead of `ActiveMQSecurityManager.validateUserAndRole(String, String, Set, CheckType)`.
      Parameters:
        `user` - the user
        `password` - the user's password
        `roles` - the user's roles
        `checkType` - which permission to validate
        `address` - the address for which to perform authorization
        `remotingConnection` - the user's connection
        `securityDomain` - the name of the JAAS security domain to use (can be null)
      Returns:
        the name of the validated user or null if the user isn't validated

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