SpringFramework3.0:如何创建仅适用于映射到某些控制器的请求的拦截器?

时间:2010-04-22 19:56:40

标签: spring spring-mvc

在它最简单的形式中,我想要一个拦截器来检查会话数据以查看用户是否已登录,如果没有,则将它们重定向到登录页面。显然,我不希望在欢迎页面或登录页面本身上使用这个拦截器。

我见过一个使用每个 url列表到两个拦截器之一的设计,一个什么都不做,另一个是你想要实现的实际拦截器,但这个设计似乎非常笨重,限制了应用程序的可扩展性。我觉得应该有一种基于注释的拦截器使用方式,但这似乎并不存在。

我的朋友想要实际修改处理程序类,以便在每次请求期间检查Controller,它将请求映射到我们要创建的新注释(ex @Interceptor(“loginInterceptor”))。

我的主要观点是可扩展性,因为我想稍后为基于角色的身份验证和/或管理身份验证实现类似的拦截器。

听起来我的朋友的方法对此有用吗?或者这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

使用Spring Security

答案 1 :(得分:1)

答案 2 :(得分:0)

如果用户对象不在会话中,那么将用户发送到登录页面的所有请求上的Servlet过滤器怎么样?对于第二部分,您可以在可以检查用户角色的控制器方法上使用安全注释。