Spring安全上下文路径解析器

2024-04-02

我想定义会话 cookie 的路径,该路径是从 Spring Security 设置的,以便允许从 Web 应用程序进行多次登录。例如:

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

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

/myApp

到适当的等价物:

/myApp/context1

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

问:如何动态更改tomcat的会话cookie(HttpSession)的cookie路径?


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

HttpSession session = request.getSession();

Spring Security 源代码中没有会话 cookie 创建逻辑。这就是为什么没有要实现的接口或配置属性来提供自定义路径。

要指定分配给 Web 应用程序创建的任何会话 cookie 的路径,您可以输入:

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

in your web.xml描述符。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring安全上下文路径解析器 的相关文章

随机推荐