java - 如果主体在 spring mvc 中为空,则将用户重定向到登录页面

标签 java spring-mvc spring-security

如果在 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/

相关文章:

java - 使用 ssh-net 的 ruby​​ 脚本中的文件路径问题

java - Spring @transactional 不起作用

java - 我无法使用 spring mvc 和 jsp 访问我的 web 应用程序中的 js 和 css 资源

java - 在keytool中导入证书并不能解决java证书问题

java - 用于休息应用程序的 Spring Security。 POST 总是返回 403 代码

javascript - WebClient 无法加载 Twitter 页面

Java-是否有类似于字符串的 hasNextInt() 或 hasNextDouble() 的方法?我想检查用户输入是否只是文本而不是数字

java - 缓存安全信息安全吗?

java - setRequestedOrientation 上的 IllegalStateException

spring - 在tomcat 7.0 + spring MVC中使用Tomcat manager,Webapp reload报apachelifecycle异常