Here are the examples of the java api class org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager taken from open source projects.
1. HangConsumerTest#setUp()
Project: activemq-artemis
File: HangConsumerTest.java
File: HangConsumerTest.java
@Override @Before public void setUp() throws Exception { super.setUp(); Configuration config = createDefaultInVMConfig().setMessageExpiryScanPeriod(10); ActiveMQSecurityManager securityManager = new ActiveMQJAASSecurityManager(InVMLoginModule.class.getName(), new SecurityConfiguration()); server = addServer(new MyActiveMQServer(config, ManagementFactory.getPlatformMBeanServer(), securityManager)); server.start(); locator = createInVMNonHALocator(); }
2. DualAuthenticationTest#setUp()
Project: activemq-artemis
File: DualAuthenticationTest.java
File: DualAuthenticationTest.java
@Override @Before public void setUp() throws Exception { super.setUp(); Map<String, Object> params = new HashMap<>(); params.put(TransportConstants.SSL_ENABLED_PROP_NAME, true); params.put(TransportConstants.KEYSTORE_PATH_PROP_NAME, SERVER_SIDE_KEYSTORE); params.put(TransportConstants.KEYSTORE_PASSWORD_PROP_NAME, PASSWORD); params.put(TransportConstants.TRUSTSTORE_PATH_PROP_NAME, SERVER_SIDE_TRUSTSTORE); params.put(TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME, PASSWORD); params.put(TransportConstants.NEED_CLIENT_AUTH_PROP_NAME, true); params.put(TransportConstants.PORT_PROP_NAME, "61617"); ConfigurationImpl config = createBasicConfig(); config.addAcceptorConfiguration(new TransportConfiguration(NETTY_ACCEPTOR_FACTORY, params)); config.addAcceptorConfiguration(new TransportConfiguration(NETTY_ACCEPTOR_FACTORY)); config.setSecurityEnabled(true); ActiveMQSecurityManager securityManager = new ActiveMQJAASSecurityManager("DualAuthenticationPropertiesLogin", "DualAuthenticationCertLogin"); server = addServer(ActiveMQServers.newActiveMQServer(config, ManagementFactory.getPlatformMBeanServer(), securityManager, false)); HierarchicalRepository<Set<Role>> securityRepository = server.getSecurityRepository(); Role sendRole = new Role("producers", true, false, true, false, true, false, false); Role receiveRole = new Role("consumers", false, true, false, false, false, false, false); Set<Role> roles = new HashSet<>(); roles.add(sendRole); roles.add(receiveRole); securityRepository.addMatch(DualAuthenticationTest.QUEUE.toString(), roles); server.start(); waitForServerToStart(server); tc = new TransportConfiguration(NETTY_CONNECTOR_FACTORY); }
3. SecurityTest#testCustomSecurityManager2()
Project: activemq-artemis
File: SecurityTest.java
File: SecurityTest.java
@Test public void testCustomSecurityManager2() throws Exception { final Configuration configuration = createDefaultInVMConfig().setSecurityEnabled(true); final ActiveMQSecurityManager customSecurityManager = new ActiveMQSecurityManager2() { @Override public boolean validateUser(final String username, final String password) { fail("Unexpected call to overridden method"); return false; } @Override public boolean validateUser(final String username, final String password, final X509Certificate[] certificates) { return (username.equals("foo") || username.equals("bar") || username.equals("all")) && password.equals("frobnicate"); } @Override public boolean validateUserAndRole(final String username, final String password, final Set<Role> requiredRoles, final CheckType checkType) { fail("Unexpected call to overridden method"); return false; } @Override public boolean validateUserAndRole(final String username, final String password, final Set<Role> requiredRoles, final CheckType checkType, final String address, final RemotingConnection connection) { if (!(connection.getTransportConnection() instanceof InVMConnection)) { return false; } if ((username.equals("foo") || username.equals("bar") || username.equals("all")) && password.equals("frobnicate")) { if (username.equals("all")) { return true; } else if (username.equals("foo")) { return address.equals("test.queue") && checkType == CheckType.CONSUME; } else if (username.equals("bar")) { return address.equals("test.queue") && checkType == CheckType.SEND; } else { return false; } } else { return false; } } }; final ActiveMQServer server = addServer(new ActiveMQServerImpl(configuration, customSecurityManager)); server.start(); final ServerLocator locator = createInVMNonHALocator(); locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true); final ClientSessionFactory factory = createSessionFactory(locator); ClientSession adminSession = factory.createSession("all", "frobnicate", false, true, true, false, -1); final String queueName = "test.queue"; adminSession.createQueue(queueName, queueName, false); final String otherQueueName = "other.queue"; adminSession.createQueue(otherQueueName, otherQueueName, false); // Wrong user name try { factory.createSession("baz", "frobnicate", false, true, true, false, -1); Assert.fail("should throw exception"); } catch (ActiveMQSecurityException se) { } catch (ActiveMQException e) { fail("Invalid Exception type:" + e.getType()); } // Wrong password try { factory.createSession("foo", "xxx", false, true, true, false, -1); Assert.fail("should throw exception"); } catch (ActiveMQSecurityException se) { } catch (ActiveMQException e) { fail("Invalid Exception type:" + e.getType()); } // Correct user and password, wrong queue for sending try { final ClientSession session = factory.createSession("foo", "frobnicate", false, true, true, false, -1); checkUserReceiveNoSend(otherQueueName, session, adminSession); Assert.fail("should throw exception"); } catch (ActiveMQSecurityException se) { } catch (ActiveMQException e) { fail("Invalid Exception type:" + e.getType()); } // Correct user and password, wrong queue for receiving try { final ClientSession session = factory.createSession("foo", "frobnicate", false, true, true, false, -1); checkUserReceiveNoSend(otherQueueName, session, adminSession); Assert.fail("should throw exception"); } catch (ActiveMQSecurityException se) { } catch (ActiveMQException e) { fail("Invalid Exception type:" + e.getType()); } // Correct user and password, allowed to send but not receive { final ClientSession session = factory.createSession("foo", "frobnicate", false, true, true, false, -1); checkUserReceiveNoSend(queueName, session, adminSession); } // Correct user and password, allowed to receive but not send { final ClientSession session = factory.createSession("bar", "frobnicate", false, true, true, false, -1); checkUserSendNoReceive(queueName, session); } }
4. SecurityTest#testCustomSecurityManager()
Project: activemq-artemis
File: SecurityTest.java
File: SecurityTest.java
@Test public void testCustomSecurityManager() throws Exception { final Configuration configuration = createDefaultInVMConfig().setSecurityEnabled(true); final ActiveMQSecurityManager customSecurityManager = new ActiveMQSecurityManager() { @Override public boolean validateUser(final String username, final String password) { return (username.equals("foo") || username.equals("bar") || username.equals("all")) && password.equals("frobnicate"); } @Override public boolean validateUserAndRole(final String username, final String password, final Set<Role> requiredRoles, final CheckType checkType) { if ((username.equals("foo") || username.equals("bar") || username.equals("all")) && password.equals("frobnicate")) { if (username.equals("all")) { return true; } else if (username.equals("foo")) { return checkType == CheckType.CONSUME || checkType == CheckType.CREATE_NON_DURABLE_QUEUE; } else if (username.equals("bar")) { return checkType == CheckType.SEND || checkType == CheckType.CREATE_NON_DURABLE_QUEUE; } else { return false; } } else { return false; } } }; final ActiveMQServer server = addServer(new ActiveMQServerImpl(configuration, customSecurityManager)); server.start(); final ServerLocator locator = createInVMNonHALocator(); locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true); final ClientSessionFactory factory = createSessionFactory(locator); ClientSession adminSession = factory.createSession("all", "frobnicate", false, true, true, false, -1); final String queueName = "test.queue"; adminSession.createQueue(queueName, queueName, false); // Wrong user name try { factory.createSession("baz", "frobnicate", false, true, true, false, -1); Assert.fail("should throw exception"); } catch (ActiveMQSecurityException se) { } catch (ActiveMQException e) { fail("Invalid Exception type:" + e.getType()); } // Wrong password try { factory.createSession("foo", "xxx", false, true, true, false, -1); Assert.fail("should throw exception"); } catch (ActiveMQSecurityException se) { } catch (ActiveMQException e) { fail("Invalid Exception type:" + e.getType()); } // Correct user and password, allowed to send but not receive { final ClientSession session = factory.createSession("foo", "frobnicate", false, true, true, false, -1); checkUserReceiveNoSend(queueName, session, adminSession); } // Correct user and password, allowed to receive but not send { final ClientSession session = factory.createSession("bar", "frobnicate", false, true, true, false, -1); checkUserSendNoReceive(queueName, session); } }
5. ActiveMQTestBase#createColocatedInVMFailoverServer()
Project: activemq-artemis
File: ActiveMQTestBase.java
File: ActiveMQTestBase.java
protected ActiveMQServer createColocatedInVMFailoverServer(final boolean realFiles, final Configuration configuration, final int pageSize, final int maxAddressSize, final Map<String, AddressSettings> settings, NodeManager liveNodeManager, NodeManager backupNodeManager, final int id) { ActiveMQServer server; ActiveMQSecurityManager securityManager = new ActiveMQJAASSecurityManager(InVMLoginModule.class.getName(), new SecurityConfiguration()); configuration.setPersistenceEnabled(realFiles); server = new ColocatedActiveMQServer(configuration, ManagementFactory.getPlatformMBeanServer(), securityManager, liveNodeManager, backupNodeManager); try { server.setIdentity("Server " + id); for (Map.Entry<String, AddressSettings> setting : settings.entrySet()) { server.getAddressSettingsRepository().addMatch(setting.getKey(), setting.getValue()); } AddressSettings defaultSetting = new AddressSettings(); defaultSetting.setPageSizeBytes(pageSize); defaultSetting.setMaxSizeBytes(maxAddressSize); server.getAddressSettingsRepository().addMatch("#", defaultSetting); return server; } finally { addServer(server); } }
6. ActiveMQTestBase#createInVMFailoverServer()
Project: activemq-artemis
File: ActiveMQTestBase.java
File: ActiveMQTestBase.java
protected ActiveMQServer createInVMFailoverServer(final boolean realFiles, final Configuration configuration, final int pageSize, final int maxAddressSize, final Map<String, AddressSettings> settings, NodeManager nodeManager, final int id) { ActiveMQServer server; ActiveMQSecurityManager securityManager = new ActiveMQJAASSecurityManager(InVMLoginModule.class.getName(), new SecurityConfiguration()); configuration.setPersistenceEnabled(realFiles); server = addServer(new InVMNodeManagerServer(configuration, ManagementFactory.getPlatformMBeanServer(), securityManager, nodeManager)); try { server.setIdentity("Server " + id); for (Map.Entry<String, AddressSettings> setting : settings.entrySet()) { server.getAddressSettingsRepository().addMatch(setting.getKey(), setting.getValue()); } AddressSettings defaultSetting = new AddressSettings(); defaultSetting.setPageSizeBytes(pageSize); defaultSetting.setMaxSizeBytes(maxAddressSize); server.getAddressSettingsRepository().addMatch("#", defaultSetting); return server; } finally { addServer(server); } }
7. ActiveMQServers#newActiveMQServer()
Project: activemq-artemis
File: ActiveMQServers.java
File: ActiveMQServers.java
public static ActiveMQServer newActiveMQServer(final Configuration config, final MBeanServer mbeanServer, final boolean enablePersistence) { ActiveMQSecurityManager securityManager = new ActiveMQJAASSecurityManager(InVMLoginModule.class.getName(), new SecurityConfiguration()); ActiveMQServer server = ActiveMQServers.newActiveMQServer(config, mbeanServer, securityManager, enablePersistence); return server; }
8. ActiveMQServers#newActiveMQServer()
Project: activemq-artemis
File: ActiveMQServers.java
File: ActiveMQServers.java
public static ActiveMQServer newActiveMQServer(final Configuration config, final boolean enablePersistence) { ActiveMQSecurityManager securityManager = new ActiveMQJAASSecurityManager(InVMLoginModule.class.getName(), new SecurityConfiguration()); ActiveMQServer server = ActiveMQServers.newActiveMQServer(config, ManagementFactory.getPlatformMBeanServer(), securityManager, enablePersistence); return server; }
9. StompProtocolManager#validateUser()
Project: activemq-artemis
File: StompProtocolManager.java
File: StompProtocolManager.java
public boolean validateUser(String login, String passcode) { boolean validated = true; ActiveMQSecurityManager sm = server.getSecurityManager(); if (sm != null && server.getConfiguration().isSecurityEnabled()) { validated = sm.validateUser(login, passcode); } return validated; }
10. OpenWireProtocolManager#validateUser()
Project: activemq-artemis
File: OpenWireProtocolManager.java
File: OpenWireProtocolManager.java
public boolean validateUser(String login, String passcode) { boolean validated = true; ActiveMQSecurityManager sm = server.getSecurityManager(); if (sm != null && server.getConfiguration().isSecurityEnabled()) { validated = sm.validateUser(login, passcode); } return validated; }
11. Run#execute()
Project: activemq-artemis
File: Run.java
File: Run.java
@Override public Object execute(ActionContext context) throws Exception { super.execute(context); FileConfiguration fileConfiguration = getFileConfiguration(); Artemis.printBanner(); createDirectories(getFileConfiguration()); BrokerDTO broker = getBrokerDTO(); addShutdownHook(broker.server.getConfigurationFile().getParentFile()); ActiveMQSecurityManager security = SecurityManagerFactory.create(broker.security); server = BrokerFactory.createServer(broker.server, security); server.start(); if (broker.web != null) { broker.components.add(broker.web); } for (ComponentDTO componentDTO : broker.components) { Class clazz = this.getClass().getClassLoader().loadClass(componentDTO.componentClassName); ExternalComponent component = (ExternalComponent) clazz.newInstance(); component.configure(componentDTO, getBrokerInstance(), getBrokerHome()); component.start(); components.add(component); } return null; }