使用自定义 JAAS 访问 Jolokia
Jolokia access with custom JAAS
在 ActiveMQ Artemis 中,当我将 requisite
或 required
标志与我的自定义 JAAS 登录模块一起使用时,我无法登录到 Artemis 管理控制台(Jolokia,端口 8163
).我在验证移动设备的自定义 JAAS 登录模块中有特殊的业务逻辑。但与此同时,我希望有一个管理员用户可以使用一些 username/password 甚至没有密码登录到 Artemis 管理控制台。为了在 Artemis login.config
中同时拥有自定义和来宾登录模块,我必须至少将自定义 JAAS 模块的安全标志保持为 sufficient
。我该如何处理这种情况?
Hawtio 使用的安全性 "realm" 是通过 etc/artemis.profile
中设置的 hawtio.realm
系统 属性 配置的。例如,这里是默认值:
JAVA_ARGS=" -XX:+PrintClassHistogram -XX:+UseG1GC -Xms512M -Xmx2G -Dhawtio.realm=activemq -Dhawtio.offline=true -Dhawtio.role=amq -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Djolokia.policyLocation=${ARTEMIS_INSTANCE_ETC_URI}jolokia-access.xml -Djon.id=amq"
这里的 hawtio.realm
设置为 activemq
匹配默认 login.config
中的条目,例如:
activemq {
org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoginModule sufficient
debug=false
reload=true
org.apache.activemq.jaas.properties.user="artemis-users.properties"
org.apache.activemq.jaas.properties.role="artemis-roles.properties";
org.apache.activemq.artemis.spi.core.security.jaas.GuestLoginModule sufficient
debug=false
org.apache.activemq.jaas.guest.user="myUser"
org.apache.activemq.jaas.guest.role="amq";
};
我看不出有什么理由不能将专门用于 Hawtio 的新 realm/domain 添加到 login.config
,然后更改 artemis.profile
中的配置以引用它。这样您就可以根据需要自定义 Hawtio 连接和消息传递连接的安全性。
此外,值得注意的是,Artemis 最近添加了对每个接受者安全域的支持。您可以在 the documentation.
中阅读更多相关信息
在 ActiveMQ Artemis 中,当我将 requisite
或 required
标志与我的自定义 JAAS 登录模块一起使用时,我无法登录到 Artemis 管理控制台(Jolokia,端口 8163
).我在验证移动设备的自定义 JAAS 登录模块中有特殊的业务逻辑。但与此同时,我希望有一个管理员用户可以使用一些 username/password 甚至没有密码登录到 Artemis 管理控制台。为了在 Artemis login.config
中同时拥有自定义和来宾登录模块,我必须至少将自定义 JAAS 模块的安全标志保持为 sufficient
。我该如何处理这种情况?
Hawtio 使用的安全性 "realm" 是通过 etc/artemis.profile
中设置的 hawtio.realm
系统 属性 配置的。例如,这里是默认值:
JAVA_ARGS=" -XX:+PrintClassHistogram -XX:+UseG1GC -Xms512M -Xmx2G -Dhawtio.realm=activemq -Dhawtio.offline=true -Dhawtio.role=amq -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Djolokia.policyLocation=${ARTEMIS_INSTANCE_ETC_URI}jolokia-access.xml -Djon.id=amq"
这里的 hawtio.realm
设置为 activemq
匹配默认 login.config
中的条目,例如:
activemq {
org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoginModule sufficient
debug=false
reload=true
org.apache.activemq.jaas.properties.user="artemis-users.properties"
org.apache.activemq.jaas.properties.role="artemis-roles.properties";
org.apache.activemq.artemis.spi.core.security.jaas.GuestLoginModule sufficient
debug=false
org.apache.activemq.jaas.guest.user="myUser"
org.apache.activemq.jaas.guest.role="amq";
};
我看不出有什么理由不能将专门用于 Hawtio 的新 realm/domain 添加到 login.config
,然后更改 artemis.profile
中的配置以引用它。这样您就可以根据需要自定义 Hawtio 连接和消息传递连接的安全性。
此外,值得注意的是,Artemis 最近添加了对每个接受者安全域的支持。您可以在 the documentation.
中阅读更多相关信息