我正在开发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”安全域中。可能是这里的新手错误,但我找不到它。
编辑:顺便说一句,以防万一重要:错误中提到的两个Beans都注释了@Stateless,我没有beans.xml。
EDIT2:我解决了这个问题,但我仍然不知道是什么造成的。解决方案:我删除了myaktion-ds.xml,其中包含我的数据源的注册,并将其内容移动到我的standalone.xml中的标记。现在一切正常,虽然它为什么会超出我的范围。 我会在这里留下这个问题几天,以防万一有人可以开导我。
答案 0 :(得分:1)
我正在处理相同的教程并遇到同样的问题。它花了我的时间,但我最终找到了一个对我有用的解决方案:
我的IDE(netbeans)的部署过程triggert似乎是由独立的完整 .xml而不是standalone.xml配置的。 在编辑了两个xml文件后,每件事都适合我。