Class ActiveMQORSecurityManager

java.lang.Object
org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager
org.openremote.manager.mqtt.ActiveMQORSecurityManager
All Implemented Interfaces:
org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager, org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager5

public class ActiveMQORSecurityManager extends org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager
A security manager that uses the MultiTenantJaasCallbackHandler with a dynamic KeycloakDeployment resolver. Unfortunately lots of private methods and fields in super class.
  • Field Details

    • authorisationService

      protected AuthorisationService authorisationService
    • brokerService

      protected MQTTBrokerService brokerService
    • deploymentResolver

      protected Function<String,org.keycloak.adapters.KeycloakDeployment> deploymentResolver
    • certificateConfigName

      protected String certificateConfigName
    • configName

      protected String configName
    • config

      protected org.apache.activemq.artemis.core.config.impl.SecurityConfiguration config
    • certificateConfig

      protected org.apache.activemq.artemis.core.config.impl.SecurityConfiguration certificateConfig
    • server

      protected org.apache.activemq.artemis.core.server.ActiveMQServer server
  • Constructor Details

    • ActiveMQORSecurityManager

      public ActiveMQORSecurityManager(AuthorisationService authorisationService, MQTTBrokerService brokerService, Function<String,org.keycloak.adapters.KeycloakDeployment> deploymentResolver, String configurationName, org.apache.activemq.artemis.core.config.impl.SecurityConfiguration configuration)
  • Method Details

    • authenticate

      public Subject authenticate(String user, String password, org.apache.activemq.artemis.spi.core.protocol.RemotingConnection remotingConnection, String securityDomain)
      Specified by:
      authenticate in interface org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager5
      Overrides:
      authenticate in class org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager
    • getAuthenticatedSubject

      protected Subject getAuthenticatedSubject(String user, String password, org.apache.activemq.artemis.spi.core.protocol.RemotingConnection remotingConnection, String securityDomain) throws LoginException
      Throws:
      LoginException
    • authorize

      public boolean authorize(Subject subject, Set<org.apache.activemq.artemis.core.security.Role> roles, org.apache.activemq.artemis.core.security.CheckType checkType, String address)
      Specified by:
      authorize in interface org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager5
      Overrides:
      authorize in class org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager
    • verifyRights

      protected boolean verifyRights(Subject subject, String address, boolean isWrite)