我想定义会话 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(使用前将#替换为@)