0

我在战争中捆绑了一个安全的 Web 服务(通过 ssl 的消息身份验证),我正在尝试使用 jdbcRealm 来验证用户。jdbcRealm 可以与其他耳朵应用程序一起正常工作,但不适用于这个 .war 实际上 glassfish 仍在使用 fileRealm,尽管在 web.xml 中完成了配置

网页.xml:

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Secure Area</web-resource-name>
            <url-pattern>/xoxoServer/secondWS/*</url-pattern>
            <http-method>POST</http-method>
        </web-resource-collection>
        <!--<auth-constraint>
          <role-name>EMPLOYEE</role-name>
        </auth-constraint>-->
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>

    </security-constraint>

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>my_realm</realm-name>
    </login-config>
</web-app>

在控制台中我得到这个:

FIN: [Web-Security] hasResource perm: (javax.security.jacc.WebResourcePermission /secondWS POST)
FIN: JMAC: UnsupportedCallback : javax.security.auth.callback.NameCallback
FIN: JMAC: In PasswordValidationCallback Processor
FIN: jmac login user [test] into realm: file using JAAS module: fileRealm
FIN: Login module initialized: class com.sun.enterprise.security.auth.login.FileLoginModule
FIN: JAAS authentication aborted.
INFO: SEC5046: Audit: Authentication refused for [test].
INFO: SEC1201: Login failed for user: test

如何解决这个问题?谢谢。ps:我正在使用带有 jdk6 的 Glassfish 3.1.2.2 b5

4

1 回答 1

0

我通过以下方式解决了这个问题:

  1. 把战争包装在耳朵里

  2. 在 glassfish-application.xml 中添加领域(在耳朵中)

于 2012-11-29T15:57:35.560 回答