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

## Interface ActiveMQSecurityManager3

- All Superinterfaces:
    ActiveMQSecurityManager
  All Known Implementing Classes:
    ActiveMQJAASSecurityManager

      public interface ActiveMQSecurityManager3
      extends ActiveMQSecurityManager

  Used to validate whether a user is authorized to connect to the server and perform certain functions on certain destinations. This is an evolution of `ActiveMQSecurityManager` and `ActiveMQSecurityManager2` that adds the ability to determine the identity of the validated user.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `validateUser(String user, String password, X509Certificate[] certificates)` 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 connection)` 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

      `validateUser, validateUserAndRole`

- - ### Method Detail

    - #### validateUser

          String validateUser(String user,
                              String password,
                              X509Certificate[] certificates)

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

      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
        `connection` - the user's connection
      Returns:
        the name of the validated user or null if the user isn't validated

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