定义安全域时出现部署错误

时间:2015-02-18 08:22:18

标签: java-ee-7 wildfly-8

我正在开发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中的标记。现在一切正常,虽然它为什么会超出我的范围。 我会在这里留下这个问题几天,以防万一有人可以开导我。

1 个答案:

答案 0 :(得分:1)

我正在处理相同的教程并遇到同样的问题。它花了我的时间,但我最终找到了一个对我有用的解决方案:

我的IDE(netbeans)的部署过程triggert似乎是由独立的完整 .xml而不是standalone.xml配置的。 在编辑了两个xml文件后,每件事都适合我。