我们有一个应用程序正在部署为耳朵。在这个耳朵里,有一场需要使用特定安全域的战争。
为实现这一目标,我们使用以下安全性部分
配置了standalone-full-ha.xml<security-domain name="ourDomain" cache-type="default">
<authentication>
<login-module code="blah.blah.OurDomain" flag="required" />
</authentication>
</security-domain>
ear / war / WEB-INF / jboss-web.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>Quark</security-domain>
<disable-audit>true</disable-audit>
</jboss-web>
使用此配置,应用程序会尝试对JBoss中默认存在的“其他”域进行身份验证。
日志条目如下:
TRACE [org.jboss.security] (http-/127.0.0.1:8080-6) PBOX000224: End getAppConfigurationEntry(other), AuthInfo: AppConfigurationEntry[]:
[0]
LoginModule Class: org.jboss.as.security.remoting.RemotingLoginModule
ControlFlag: LoginModuleControlFlag: optional
Options:
name=password-stacking, value=useFirstPass
[1]
LoginModule Class: org.jboss.as.security.RealmDirectLoginModule
ControlFlag: LoginModuleControlFlag: required
Options:
name=password-stacking, value=useFirstPass
当试图将其定义为耳朵/ META-INF / jboss-app.xml中的耳朵的一部分时,这使整个事情变得非常惊人 - 因此认为不太可能成为解决此问题的方法。
但是,如果默认安全域更改为ourDomain
,则一切都按预期工作。
这似乎不是什么大问题 - 但是,能够尽可能多地在应用程序中留下配置感觉更好。
任何解决这个问题的指示都会受到赞赏。
答案 0 :(得分:5)
jboss-web.xml
中指定的安全域名需要与JBoss配置中某个安全域的名称相匹配,在这种情况下,Web描述符指定Quark
,而安全子系统定义的域名为{{1} }}
每当JBoss找不到您在ourDomain
中请求的安全域时,它将回退到默认安全域,如果7.x被命名为jboss-web.xml
。