我有一个带有3-4个servlet的小应用程序和一个提供身份验证的基本模块,如下所示:
public class Authentication {
public boolean isUserAuthenticated(){
....
}
}有没有一种方法可以在每次调用其他servlet之前使用我的类检查身份验证,而不必在每个servlet调用中添加代码?我希望避免用户对我拥有的每个servlet以及我必须添加的每个servlet进行检查。
任何建议都会被很好地接受:)
谢谢,罗伯托
发布于 2009-10-06 15:34:07
当然,使用servlet filter。它是在Java Web应用程序中实现安全性的标准方法。
Java Servlet规范2.3版引入了一种新的组件类型,称为过滤器。过滤器动态截取请求和响应,以转换或使用包含在请求或响应中的信息。过滤器本身通常不会创建响应,而是提供可以“附加”到任何类型的servlet或JSP页面的通用功能。
发布于 2009-10-06 15:35:19
您可以将身份验证逻辑放在Servlet筛选器中。如果筛选器发现未通过身份验证的请求,它可以将用户重定向到登录页面(或其他页面)。
到达servlet的任何内容都将在那时进行隐式身份验证。
发布于 2009-10-06 15:37:49
使用Acegi Security (现在是Spring Security)。使用Spring还会在其他方面让你的生活变得更轻松。(Spring security使用servlet过滤器工作,如上面的文章所述)。
https://stackoverflow.com/questions/1526384
复制相似问题