You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让禁用安全的Artemis Broker对应Web控制台不显示登录页?

解决方案

核心原理

Artemis Broker的security-enabled: false仅控制Broker自身的消息收发安全,Web控制台的认证是独立组件,默认强制要求登录,因此需要单独配置控制台跳过认证流程。

实现步骤

1. 直接禁用控制台认证(推荐)

控制台的认证逻辑与Broker安全开关解耦,可通过配置直接关闭其登录要求:

  • 若使用Quarkus集成的新版本Artemis控制台,添加以下配置到application.properties:
    quarkus.http.auth.basic=false
    quarkus.http.auth.form.enabled=false
    
  • 若使用传统嵌入式Web控制台,可通过覆盖类路径下的web.xml,移除登录相关的安全约束:
    <!-- 注释或删除这段安全约束配置 -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Artemis Console</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>
        </auth-constraint>
    </security-constraint>
    

2. 用GuestLoginModule自动登录(适配强制要求JAAS的场景)

若系统必须指定java.security.auth.login.config,可创建仅包含GuestLoginModule的配置文件,让控制台自动完成匿名登录:

artemis {
    org.apache.activemq.artemis.spi.core.security.jaas.GuestLoginModule required
        username="admin"
        groups="admin,user";
};

启动时通过参数指定该文件:

-Djava.security.auth.login.config=/path/to/your/jaas.conf

这种配置下控制台不会显示登录页,同时Broker保持security-enabled: false的无安全状态。

关于GuestLoginModule的说明

文档提到的“链式使用其他登录模块”是生产环境的常规最佳实践,但在Broker完全禁用安全+控制台匿名访问的场景下,单独使用GuestLoginModule完全可行——它仅用于满足控制台自身的身份校验要求,不会影响Broker的安全禁用状态。

内容的提问来源于stack exchange,提问作者rb612

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 08:40:16