我有一个带有3-4个servlet和一个基本模块的小应用程序,它为我提供了如下身份验证:
public class Authentication {
public boolean isUserAuthenticated(){
....
}
}
有没有办法在每个其他servlet调用之前使用我的类检查身份验证,而不必在每个servlet调用中添加代码?我想避免检查用户每个servlet以及我必须添加的每个servlet。
任何建议都被广泛接受:)
谢谢,Roberto
答案 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