gpt4 book ai didi

tomcat - Spring 安全上下文路径解析器

转载 作者:行者123 更新时间:2023-11-28 22:03:25 25 4
gpt4 key购买 nike

我想定义从 spring security 设置的 session cookie 的路径,以允许从 web 应用程序进行多次登录。例如:

http://localhost:8080/myApp/context1/login
http://localhost:8080/myApp/context2/login
http://localhost:8080/myApp/context3/login
...

基本上,这可以通过覆盖 LoginUrlAuthenticationEntryPointSimpleUrlAuthenticationFailureHandlerSimpleUrlAuthenticationSuccessHandlerSimpleUrlLogoutSuccessHandler 来实现。但是我找不到负责设置 cookie 上下文路径的处理程序,我需要从以下位置覆盖它:

/myApp

适当的等价物:

/myApp/context1

这是必需的,以允许并行登录到这些应用程序。

问:如何为tomcat动态改变session cookie(HttpSession)的cookie路径?

最佳答案

您的应用程序容器负责向客户端发送 session cookie。在 Spring Security 代码中,您只会看到这样的行:

HttpSession session = request.getSession();

Spring Security 源代码中没有 session cookie 创建逻辑。这就是为什么没有用于实现的接口(interface)或用于提供自定义路径的配置属性的原因。

要指定将分配给您的网络应用程序创建的任何 session cookie 的路径,您可以放置​​:

<web-app>
<session-config>
<cookie-config>
<path></path>
</cookie-config>
</session-config>
</web-app>

在您的 web.xml 描述符中。

但是您希望在一个 Web 应用程序中有多个 session 。为什么不为每个用户上下文部署新的应用程序?这是最合乎逻辑的方法。

编辑:恐怕您想实现一些无需修补 session 即可轻松完成的事情。您的问题看起来更像是授权而不是身份验证。也许您需要为每个上下文使用角色?还是访问控制列表?

关于tomcat - Spring 安全上下文路径解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13659734/

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