gpt4 book ai didi

java - 使用 Spring Security 加载用户 session

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:49 25 4
gpt4 key购买 nike

我正在开发一个 Web 应用程序,该应用程序将在 Cisco Jabber 中用作自定义选项卡。

在我的应用程序中,用户需要登录。第一次身份验证是使用 Spring SAML (SSO) 完成的。如果此身份验证失败,则用户回退到这些身份验证过程之一:
- A:直接使用他的用户ID(不是真正的身份验证,但某些客户端需要)
- B:登录表单(针对客户端数据库进行身份验证)

问题是某些操作正在创建弹出窗口,而使用 Jabber,这些弹出窗口会在 Internet Explorer 中打开,而 Internet Explorer 中没有有关我的用户的任何信息,因此我的应用程序会尝试再次对他进行身份验证。如果 SSO 工作正常,则用户无需执行任何操作,如果失败,则身份验证 A 工作正常,但如果选择了身份验证 B,那么我就会遇到问题,因为我需要用户在不输入凭据的情况下进行身份验证。

Spring、Spring Security 有没有办法将 session 从 Jabber 复制到 IE 并跳过登录页面?

我遵循此处的建议并尝试将 jsessionid 设置为弹出网址的参数,如下所示:

var logUrl = 'login.do' + (this.user === '' ? ';jsessionid=' + sessionId : '?userId=' + this.user);
var w = window.open(logUrl, number, 'width=800,height=600,resizeable=yes,scrollbars=yes,toolbar=no,location=yes,status=yes,menubar=yes');

问题在于,当用户打开弹出窗口时,url 中的 jsessionid 与 Jabber 中的 jsessionid 不一样。如果我尝试在 Jabber 中使用用户的 JSESSIONID 登录,则不起作用。

是否有一些配置参数我尚未设置才能使其正常工作?

最佳答案

使用 JSESSIONID cookie 跟踪 session ,因此您可以将其作为引用时的 URL 参数传递。

但是,session hijacking 存在安全问题。考虑采用这种方法。

例如,您必须使用 SSL/HTTPS。

参见this answer了解更多信息。

关于java - 使用 Spring Security 加载用户 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44927940/

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