Class ActiveMQBasicSecurityManager
- java.lang.Object
-
- org.apache.activemq.artemis.spi.core.security.ActiveMQBasicSecurityManager
-
- All Implemented Interfaces:
ActiveMQSecurityManager,ActiveMQSecurityManager5,UserManagement
public class ActiveMQBasicSecurityManager extends java.lang.Object implements ActiveMQSecurityManager5, UserManagement
All user and role state (both in memory and on disk) is maintained by the underlying StorageManager
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringBOOTSTRAP_PASSWORDstatic java.lang.StringBOOTSTRAP_ROLEstatic java.lang.StringBOOTSTRAP_ROLE_FILEstatic java.lang.StringBOOTSTRAP_USERstatic java.lang.StringBOOTSTRAP_USER_FILE
-
Constructor Summary
Constructors Constructor Description ActiveMQBasicSecurityManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddNewUser(java.lang.String user, java.lang.String password, java.lang.String... roles)javax.security.auth.Subjectauthenticate(java.lang.String userToAuthenticate, java.lang.String passwordToAuthenticate, RemotingConnection remotingConnection, java.lang.String securityDomain)is this a valid user.booleanauthorize(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.voidcompleteInit(org.apache.activemq.artemis.core.persistence.StorageManager storageManager)ActiveMQBasicSecurityManagerinit(java.util.Map<java.lang.String,java.lang.String> properties)Initialize the manager with the given configuration properties.java.util.Map<java.lang.String,java.util.Set<java.lang.String>>listUser(java.lang.String user)voidremoveUser(java.lang.String user)voidupdateUser(java.lang.String user, java.lang.String password, java.lang.String... roles)booleanvalidateUser(java.lang.String user, java.lang.String password)is this a valid user.booleanvalidateUserAndRole(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
getDomain
-
-
-
-
Field Detail
-
BOOTSTRAP_USER
public static final java.lang.String BOOTSTRAP_USER
- See Also:
- Constant Field Values
-
BOOTSTRAP_PASSWORD
public static final java.lang.String BOOTSTRAP_PASSWORD
- See Also:
- Constant Field Values
-
BOOTSTRAP_ROLE
public static final java.lang.String BOOTSTRAP_ROLE
- See Also:
- Constant Field Values
-
BOOTSTRAP_USER_FILE
public static final java.lang.String BOOTSTRAP_USER_FILE
- See Also:
- Constant Field Values
-
BOOTSTRAP_ROLE_FILE
public static final java.lang.String BOOTSTRAP_ROLE_FILE
- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public ActiveMQBasicSecurityManager init(java.util.Map<java.lang.String,java.lang.String> properties)
Description copied from interface:ActiveMQSecurityManagerInitialize the manager with the given configuration properties. This method is called by the broker when the file-based configuration is read. If you're creating/configuring the plugin programmatically then the recommended approach is to simply use the manager's getters/setters rather than this method.- Specified by:
initin interfaceActiveMQSecurityManager- Parameters:
properties- name/value pairs used to configure the ActiveMQSecurityManager instance- Returns:
thisinstance
-
validateUser
public boolean validateUser(java.lang.String user, java.lang.String password)Description copied from interface:ActiveMQSecurityManageris this a valid user.- Specified by:
validateUserin interfaceActiveMQSecurityManager- Parameters:
user- the userpassword- the users password- Returns:
- true if a valid user
-
authenticate
public javax.security.auth.Subject authenticate(java.lang.String userToAuthenticate, java.lang.String passwordToAuthenticate, RemotingConnection remotingConnection, java.lang.String securityDomain)Description copied from interface:ActiveMQSecurityManager5is this a valid user. This method is called instead ofActiveMQSecurityManager.validateUser(String, String).- Specified by:
authenticatein interfaceActiveMQSecurityManager5- Parameters:
userToAuthenticate- the userpasswordToAuthenticate- the user's passwordremotingConnection- the user's connection which contains any corresponding SSL certssecurityDomain- 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:ActiveMQSecurityManageris this a valid user and do they have the correct role- Specified by:
validateUserAndRolein interfaceActiveMQSecurityManager- Parameters:
user- the userpassword- the users passwordroles- the roles the user hascheckType- 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:ActiveMQSecurityManager5Determine whether the given user has the correct role for the given check type. This method is called instead ofActiveMQSecurityManager.validateUserAndRole(String, String, Set, CheckType).- Specified by:
authorizein interfaceActiveMQSecurityManager5- Parameters:
subject- the Subject to authorizeroles- the roles configured in the security-settingscheckType- which permission to validateaddress- the address (or FQQN) to grant access to- Returns:
- true if the user is authorized, else false
-
addNewUser
public void addNewUser(java.lang.String user, java.lang.String password, java.lang.String... roles) throws java.lang.Exception- Specified by:
addNewUserin interfaceUserManagement- Throws:
java.lang.Exception
-
removeUser
public void removeUser(java.lang.String user) throws java.lang.Exception- Specified by:
removeUserin interfaceUserManagement- Throws:
java.lang.Exception
-
listUser
public java.util.Map<java.lang.String,java.util.Set<java.lang.String>> listUser(java.lang.String user)
- Specified by:
listUserin interfaceUserManagement
-
updateUser
public void updateUser(java.lang.String user, java.lang.String password, java.lang.String... roles) throws java.lang.Exception- Specified by:
updateUserin interfaceUserManagement- Throws:
java.lang.Exception
-
completeInit
public void completeInit(org.apache.activemq.artemis.core.persistence.StorageManager storageManager)
-
-