Java servlet和身份验证

时间:2009-10-06 15:33:12

标签: java authentication jsp servlets

我有一个带有3-4个servlet和一个基本模块的小应用程序,它为我提供了如下身份验证:

public class Authentication {
    public boolean isUserAuthenticated(){
        ....
    }
}

有没有办法在每个其他servlet调用之前使用我的类检查身份验证,而不必在每个servlet调用中添加代码?我想避免检查用户每个servlet以及我必须添加的每个servlet。

任何建议都被广泛接受:)

谢谢,Roberto

4 个答案:

答案 0 :(得分:8)

当然,请使用servlet filter。它是在Java Web应用程序中实现安全性的标准方法。

  

Java Servlet规范版本   2.3引入了一种新的组件类型,称为过滤器。动态过滤   拦截请求和响应   转换或使用信息   包含在请求或   响应。过滤器通常不会   他们自己创造反应,但是   而是提供通用功能   可以“附加”到任何类型的   servlet或JSP页面。

答案 1 :(得分:2)

您可以将身份验证逻辑放在Servlet过滤器中。如果过滤器发现未经过身份验证的请求,则可以将用户重定向到登录页面(或其他任何内容)。

到那时,任何进入servlet的东西都会被隐式验证。

答案 2 :(得分:1)

使用Acegi Security(现在是Spring Security)。使用Spring还可以通过其他方式让您的生活更轻松。 (Spring安全性使用上面帖子中提到的servlet过滤器。)

答案 3 :(得分:0)

用户身份验证可以通过servlet过滤器完成 查看详细示例User Authentication Filter Example