Wildfly 24部署无内置安全的应用报403,如何关闭默认安全机制
Wildfly关闭默认安全机制解决403错误方案
问题原因
无自定义安全配置的EAR应用返回403错误,由Wildfly默认启用全局安全域拦截导致。
操作步骤
- 方案1:单个应用生效(无需修改服务端全局配置,更推荐)
- 在EAR应用的
META-INF目录下新增jboss-web.xml配置文件,写入以下内容:
<?xml version="1.0" encoding="UTF-8"?> <jboss-web xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web_13_0.xsd" version="13.0"> <security-domain>other</security-domain> <disable-audit>true</disable-audit> <context-param> <param-name>resteasy.role.based.security</param-name> <param-value>false</param-value> </context-param> </jboss-web>- 若EJB模块也存在访问拦截,在EJB子模块的
META-INF目录下新增jboss-ejb3.xml,写入:
<?xml version="1.0" encoding="UTF-8"?> <jboss:jboss-ejb3 xmlns:jboss="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3_7_0.xsd" version="7.0"> <assembly-descriptor> <security:excluded-unchecked-permissions xmlns:security="urn:security"> <security:permission-check>false</security:permission-check> </security:excluded-unchecked-permissions> </assembly-descriptor> </jboss:jboss-ejb3>- 重新部署应用即可生效。
- 在EAR应用的
- 方案2:全局关闭Wildfly默认安全机制(对所有部署的应用生效)
- 进入Wildfly的
bin目录,运行jboss-cli.sh(Linux)或jboss-cli.bat(Windows)启动命令行工具。 - 连接运行中的Wildfly实例:
connect - 依次执行以下命令禁用默认安全域自动绑定:
/subsystem=undertow/application-security-domain=other:undefine-attribute(name=security-domain) /subsystem=ejb3:write-attribute(name=default-security-domain, value=)- 重启Wildfly服务生效。
- 进入Wildfly的
验证
重新部署应用后直接访问context-root路径,确认无403错误即可。
内容的提问来源于stack exchange,提问作者user2412555
相关产品推荐
相关产品推荐

