如果在 service 层(任何地方)中发现来自 SecurityContextHolder
的主体为 null,如何将用户重定向到登录页面?
我想它应该是一些拦截器或过滤器。
最佳答案
当请求进入服务层时,安全上下文应该已经被安全过滤器链中配置的过滤器之一填充。如果未填充,则意味着安全过滤器链未正确配置,或者请求 URL 不受任何已配置过滤器链的保护。检查 pattern
属性存在于 http
上安全配置中的元素,如果它与请求 url 匹配。
负责处理未经身份验证的请求的过滤器是 ExceptionTranslationFilter
这将调用配置的 AuthenticationEntryPoint
启动身份验证过程。
默认命名空间配置 ( <security:http auto-config="true"...
) 使用 LoginUrlAuthenticationEntryPoint
设置此过滤器这会将用户重定向到登录页面。
关于java - 如果主体在 spring mvc 中为空,则将用户重定向到登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823828/