gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 06:45:06 34 4
gpt4 key购买 nike

我相信我的问题与以下问题非常相似 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/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com