Java servlet和身份validation

我有一个小应用程序,有3-4个servlet和一个基本模块,为我提供如下身份validation:

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

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

任何建议都被接受:)

谢谢,罗伯托

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

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

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

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

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

用户身份validation可以通过servletfilter完成。
查看详细示例用户身份validation筛选器示例