如果在spring mvc中principal为null,则将用户重定向到登录页面

时间:2013-02-12 01:02:00

标签: java spring-mvc spring-security

如果在服务层(任何地方)找到SecurityContextHolder的主体,则如何将用户重定向到登录页面? 我想它应该是一些拦截器或过滤器。

1 个答案:

答案 0 :(得分:1)

当请求进入服务层时,安全上下文应该已经由安全过滤器链中的一个已配置过滤器填充。如果未填充,则表示安全过滤器链未正确配置,或者请求URL未受任何已配置的过滤器链保护。检查安全配置中pattern元素上是否存在http属性,以及它是否与请求网址匹配。

负责处理未经身份验证的请求的过滤器是ExceptionTranslationFilter,它将调用已配置的AuthenticationEntryPoint来启动身份验证过程。 默认命名空间配置(<security:http auto-config="true"...)使用LoginUrlAuthenticationEntryPoint设置此过滤器,将用户重定向到登录页面。