首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat 7- JDBCRealm登录

Tomcat 7- JDBCRealm登录
EN

Stack Overflow用户
提问于 2013-08-19 00:05:20
回答 2查看 718关注 0票数 0

我在Tomcat7中使用JDBCRealm,我想构建一个简单的登录页面。这是我的登录表:

Login Form

我的web.xml内容是:

代码语言:javascript
复制
 <login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/user/login.jsp</form-login-page>
        <form-error-page>/user/login-failed.html</form-error-page>
    </form-login-config>
 </login-config>

我想在用户通过身份验证后将其重定向到某个a.jsp页面。我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2013-08-28 18:14:23

我知道你想要重定向你的用户取决于role.Suppose,如果用户是管理员,那么他/她应该被重定向到admin.jsp (例如),如果用户是经理角色,他/她应该被重定向到manager.jsp。

假设您的JDBCRealm中定义了两个角色admin和manager

您可以通过在项目中创建servlet来实现此目的,例如LoginServlet.java

因此,您必须设置的内容是:

当您登录到动态web项目的WebContent中任意文件夹下的两个jsp页面admin.jsp和manager.jsp时,创建login.jsp和-

  1. .html,即:

WebContent/htmlPages/admin.jsp put <h4>Welcome Admin</h4>text in body tag.

WebContent/htmlPages/manager.jsp put <h4>Welcome Admin</h4>text in body tag.

  1. In LoginServlet.jsp in doGet MEthod put this simple code:

if(request.isUserInRole("admin")) { response.sendRedirect("htmlPages/admin.jsp");

} if(request.isUserInRole("manager")){ response.sendRedirect("htmlPages/manager.jsp");

}

  • After that you have to set welcome-files as the login servletin web.xml e.g. Suppose IN web.xml your servlet entry is

<servlet> <description></description> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>Fully classified name of LoginServlet</servlet-class>

</servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping>

Then get url pattern from Servlet Mapping and put it in welcome file list without any slash: like

<welcome-file-list> <welcome-file>loginServlet</welcome-file> </welcome-file-list>

请确保没有包括斜杠。欢迎文件属性应该没有斜杠,就像我在代码loginServlet中放的那样。

运行此代码。:-)您将被重定向到适当的jsp页面。

票数 1
EN

Stack Overflow用户

发布于 2013-08-19 02:48:33

不需要。这不是表单身份验证的工作方式。用户请求一个页面。如果需要身份验证,则他们会收到登录页面,而不是他们请求的页面。然后,他们输入他们的凭据,如果有效,将显示他们最初请求的页面。

如果您坚持滥用表单身份验证过程,您可以设置org.apache.catalina.authenticator.FormAuthenticator.的landingPage属性有关详细信息,请参阅文档(http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Form_Authenticator_Valve)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18301059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档