繁体   English   中英

WildFly 13 Web应用程序未显示登录表单

[英]WildFly 13 web app not showing login form

我目前正在将一个应用程序从JBoss 5迁移到WildFly13。该应用程序包括一个EAR,它将一系列ejb打包到一个jar中,并包含了一些保存Web应用程序的WAR文件。

Web应用程序之一的web.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

    <display-name>My App</display-name>

    <!-- RESTful web services support -->
    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.test.Dispatcher</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>


    <!-- order of security-constraint in web.xml is very important!!! -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Secure Content</web-resource-name>
            <url-pattern>*</url-pattern>
        </web-resource-collection>

        <auth-constraint>
            <role-name>LOGON</role-name>
        </auth-constraint>

        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

    <login-config>      
        <auth-method>BASIC</auth-method>
    </login-config>

    <security-role>
        <description>automatic generated role</description>
        <role-name>LOGON</role-name>
    </security-role>

</web-app>

jboss-web仅定义了我已配置的安全领域:

<jboss-web>
  <security-domain>myRealm</security-domain>
</jboss-web>

尽一切可能,由于我希望BASIC auth方法会在我调用任何资源时提示浏览器登录表单显示。

安全子系统定义了一个名为myRealm的自定义安全域,该域使用jdbc查询:

<subsystem xmlns="urn:jboss:domain:security:2.0">
            <security-domains>
                <security-domain name="myRealm" cache-type="default">
                    <authentication>
                        <login-module code="com.login.LoginModule" flag="required" module="org.jboss.login">
                            <module-option name="dsJndiName" value="java:jboss/datasources/datasourceDSXA"/>
                            <module-option name="hashAlgorithm" value="SHA"/>
                            <module-option name="hashEncoding" value="BASE64"/>
                            <module-option name="principalsQuery" value="SELECT ...."/>
                            <module-option name="rolesQuery" value="SELECT ...."/>
                            <module-option name="unauthenticatedIdentity" value="guest"/>
                        </login-module>
                        <login-module code="Remoting" flag="optional">
                            <module-option name="password-stacking" value="useFirstPass"/>
                        </login-module>
                    </authentication>
                </security-domain>
</subsystem>

undertow安全域设置为我的自定义域:

<subsystem xmlns="urn:jboss:domain:undertow:6.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="myRealm">

关于我可能做错了什么的想法?

<url-pattern>*</url-pattern>更改为<url-pattern>/*</url-pattern>达到目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM