java - 如何检查授权过滤器的用户

标签 java servlet-filters

我有一个过滤器和登录 Servlet。我如何检查 - 授权用户与否?如果没有授权 - 将他重定向到 Login Servlet。

谢谢。

最佳答案

这样做:

  1. 当用户登录时,在 HttpSession 中为该用户设置 User 对象。这样,httpRequest.getSession().setAttribute("LOGGED_USER", userObject)

  2. 现在,每次您点击过滤器/安全过滤器时。您要做的第一件事是检查此属性。

  3. 如果该属性不存在,则将请求重定向/转发到登录 servlet。

伪代码如下所示:

//in your login servlet, on successful login
request.getSession().setAttribute("LOGGED_USER", userObject);

//in your security filter
if(request.getSession().getAttribute("LOGGED_USER") == null){
//optionally, you may like to check if that attribute has a valid userId as well
     RequestDispatcher rd = request.getRequestDispatcher("relative/path/to/login/servlet")
     rd.forward(request, response);
     return;
}

编辑 1: 看这个 http://download.oracle.com/javaee/5/tutorial/doc/bncbx.html

关于java - 如何检查授权过滤器的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4985133/

相关文章:

java - 方法内部不允许接口(interface)

java - 如何使用java.util.Scanner类读取输入?

java - 在 Jetty 中通过默认 servlet 提供静态资源

servlets - 如何在 WAR 中使用注释定义 servlet 过滤器的执行顺序

java - 从 FacesContext 隐藏 JSP

java - 需要使用单元测试框架来测试 Servlet、Filters 和 JPA 等 J2EE 组件

java - 如何在 Linux、Mac 和 Windows 上制作安装程序?

java - 无法运行android测试套件: Exception in thread "main" java. lang.ClassNotFoundException

java - servlet 链过滤器

java - Selenium RC Java - isElementPresent 不起作用