如何防止spring-security附加; jsessionid = XXX登录重定向?

cem*_*ick 31 tomcat servlets jetty spring-security

当未经身份验证的客户端请求需要非匿名访问级别的URL时security-config.xml,spring security会将HTTP重定向发送到我们的登录页面(例如/login).没关系.

问题是,如果没有现有会话(由客户端请求中提供的cookie标识),spring-security会发出重定向,该重定向也指定客户端在URL中的新会话,例如/login;jsessionid=8o7pglapojus.

许多容器支持这个(显然在Tomcat中正常工作?),但现在看来,码头(这就是我们现在正在使用)不-重定向的URL来通过我们的网址路由器完全不变(包括jsessionid"参数"),并且命名会话不与/loginjetty/spring-security 的请求相关联(即,在对/login请求的响应的Set-Cookie头中提供了全新的会话ID ).

我们可以通过匹配/login.*我们的路由来解决这个问题,但我很好奇是否有任何方法可以防止在身份验证重定向中发出会话ID.

Bal*_*usC 43

在Spring Security 3.0.0 M1或更新版本中,您可以disable-url-rewriting="true"<http>命名空间中进行设置.看看是否有帮助.另请参阅此功能请求.


小智 8

现在看起来像这样.

<security:http auto-config="false" use-expressions="true" disable-url-rewriting="true">
Run Code Online (Sandbox Code Playgroud)

在此之后,您的应用程序将无法正常执行有状态的作业.

  • 您的意思是,如果客户端不允许cookie,那么应用程序将无法执行状态有效的工作吗? (2认同)