成功完成Tomcat表单登录后重定向

时间:2018-03-24 09:20:19

标签: forms tomcat redirect servlets login

我正在使用Tomcat提供的表单身份验证,它运行正常。无论使用什么URL,都应该调用Dispatcher Servlet,这样我就可以根据使用的URL使用转发到默认页面或任何特定页面。 例如:

https://localhost:8443/myApp/List/ - >重定向到list.jsp或/ home / list

https://localhost:8443/myApp - >重定向到home.jsp或/ home

https://localhost:8443/myApp/adgsdg - >重定向到home.jsp或/ home

我的web.xml看起来像:     

<!-- WELCOME FILE LIST -->
<welcome-file-list>
    <welcome-file>/Home/Servlet</welcome-file>
</welcome-file-list>

<servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>servlet.DispatcherServlet
    </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/Home/Servlet</url-pattern>
</servlet-mapping>

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Wildcard means whole app requires authentication
        </web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>

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

    <user-data-constraint>
        <!-- transport-guarantee can be CONFIDENTIAL, INTEGRAL, or NONE -->
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.html</form-login-page>
        <form-error-page>/login-failed.html</form-error-page>
    </form-login-config>
</login-config>

welcome-file-list似乎没有效果。我希望这可能是一个默认位置,在成功登录后重定向,但Tomcat保存请求URL并重定向到它。 当我在servlet映射中使用/ *时,身份验证不起作用。

如何在成功登录表单后实现重定向?

1 个答案:

答案 0 :(得分:0)

<welcome-file-list>是打开webapp页面时可能会打开的页面,可能是Login页面。您可以做的是在此页面上拨打Servlet&#39;提交。在此LoginServlet中,您可以拥有if/else,其中如果条件成功且if运行,则dispatch将其发送到您的主页,如果条件失败并else运行,您可以dispatch到同一个Login页面。希望这能解释你的怀疑。

您可以随时扩展这个想法以满足您的需求。

希望画一幅画。