【发布时间】:2015-02-18 08:22:18
【问题描述】:
我正在编写 JavaEE7 教程;目前我正在尝试使用wildfly 8.2.0 建立一个安全域。这些是我使用的设置:
jboss-web.xml:
<jboss-web>
<security-domain>my-aktion</security-domain>
</jboss-web>
standalone.xml 中处理这个安全域的部分:
<subsystem xmlns="urn:jboss:domain:security:1.2">
<security-domains>
<security-domain name="other" cache-type="default">
<authentication>
<login-module code="Remoting" flag="optional">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
<login-module code="RealmDirect" flag="required">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="jboss-web-policy" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required"/>
</authorization>
</security-domain>
<security-domain name="jboss-ejb-policy" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required"/>
</authorization>
</security-domain>
<security-domain name="my-aktion" cache-type="default">
<authentication>
<login-module code="Database" flag="required">
<module-option name="dsJndiName" value="java:jboss/datasources/MyAktionDS"/>
<module-option name="principalsQuery" value="select password from organizer where email=?"/>
<module-option name="rolesQuery" value="select 'Organizer','Roles' from organizer where email=?"/>
<module-option name="hashAlgorithm" value="SHA-256" />
<module-option name="hashEncoding" value="hex" />
<module-option name="hashCharset" value="UTF-8" />
</login-module>
</authentication>
</security-domain>
</security-domains>
</subsystem>
这就是我尝试部署时遇到的错误:
> "JBAS014771: Services with missing/unavailable dependencies" => [
> "jboss.deployment.unit.\"my-aktion.war\".component.DonationServiceBean.CREATE
> is missing [jboss.security.security-domain.my-aktion]",
> "jboss.deployment.unit.\"my-aktion.war\".component.CampaignServiceBean.CREATE
> is missing [jboss.security.security-domain.my-aktion]",
> "jboss.undertow.deployment.default-server.default-host./my-aktion.UndertowDeploymentInfoService
> is missing [jboss.security.security-domain.my-aktion]" ]}
我无法从这条错误消息中得出正面或反面,但这似乎是我在 my-aktion 安全域中做错了什么,也许有人有提示。无论如何,我尝试删除 jboss-web.xml,应用程序部署良好,但我无法登录,可能是因为处理登录的查询位于“my-aktion”安全域中。这里可能是新手错误,但我找不到它。
编辑:顺便说一句,以防万一:错误中提到的两个 Bean 被注释为 @Stateless 并且我没有 beans.xml。
EDIT2:我解决了这个问题,但我仍然不知道是什么原因造成的。解决方案:我删除了 myaktion-ds.xml,其中包含我的数据源的注册,并将其内容移动到我的standalone.xml 中的标签中。现在一切正常,尽管它为什么会这样超出了我的范围。 我会把这个问题留在这里几天,以防有人能启发我。
【问题讨论】: