java - 失去 spring security 记住我重定向后的子域 cookie

标签 java spring redirect cookies spring-security

我相信我的问题与以下问题非常相似 Spring security 'remember me' cookie not avaiable in first request .

基本上,我有一组用于公司内部网的应用程序,它们通过记住我的 cookie 共享身份验证。 Cookie 的域设置为 .domain.com,因此它可以在应用程序之间共享,因为它们都在同一个域或子域中。

如果用户未登录并尝试转到安全应用程序,他们将被重定向到中央应用程序以进行登录。登录后,用户被重定向到原始应用程序,他们被发送到登录屏幕,但问题就是从这里开始的。在第一个请求中,Remember Cookie 不会出现在接收重定向的应用程序的 HttpServletRequest 中,用户将无法登录,被重定向回登录屏幕。此时虽然实际的 cookie 存在且有效,但用户可以手动转到他们刚刚来自的 url 并通过记住我的 cookie 登录。

例如

domain.com/app -> 重定向 -> domain.com/main/login -> 重定向 -> domain.com/app -> 重定向 -> domain.com/main/login -> 手动导航 -> 域。 com/app -> 已登录。

我已经尝试了几种解决方案,从使用 response.sendRedirect 在后端重定向到首先将用户发送到使用 JS 重定向的中间页面,但都没有帮助。在其他应用程序的第一个请求中,cookie 根本不存在。更令人困惑的是,如果登录重定向到包含登录页面的主应用程序,则 cookie 会在第一次请求时立即出现。

有什么想法吗?

最佳答案

在我们的一系列登录后重定向过程中,这最终会影响请求缓存。将以下内容添加到我们的 java 安全配置中解决了这个问题。

public HttpSecurity configureHttp(HttpSecurity http, IntranetSecurityAccessDeniedHandler intranetSecurityAccessDeniedHandler) throws Exception {
        http
.requestCache().requestCache(new NullRequestCache()).and()}

关于java - 失去 spring security 记住我重定向后的子域 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26238887/

相关文章:

java - 将变量从按钮按下传递到另一个类

java - org.springframework.dao.DataIntegrityViolationException : Duplicate entry Spring+Hibernate

spring - spring security中的最佳实现 'Access'用户

java - PMD 的数据流异常分析警告

java - 需要有关 apache poi api 中的数组公式实现的帮助

css - 如何使用CSS重定向?

python - Django 没有正确重定向

php - 不使用 header 重定向从我的 PHP 将值发布到第三方支付网站

java - 如何在android中使用mp4parser在视频上添加水印?

java - 如何使用配置文件运行 gradle?重复 key : spring