多个WebSecurityConfigurerAdapter在spring security 3.2.5.RELEASE中正常工作,但JSESSIONID在不同的浏览器中被覆盖

时间:2014-09-26 03:32:11

标签: security session spring-mvc spring-security jsessionid

允许仅通过ROLE_ADMIN访问路​​径(www.mywebsite.com/admin/),并允许ROLE_USER或ROLE_ANONYMOUS访问其他路径(www.mywebsite.com / ....)。 我为此策略提供了两个不同的类(扩展WebSecurityConfigurerAdapter),并且它们已成功执行。

问题是 当我在www.mywebsite.com/admin/中以ROLE_ADMIN在一个浏览器中登录时,然后我在www.mywebsite.com / ...中以不同的浏览器登录为ROLE_USER,然后我转到www.mywebsite .com / admin / ..,我的管理员会话信息(ROLE_ADMIN)被用户会话信息覆盖,因此我得到了ERROR(Permission Deny)。

我的理解是两个类(扩展WebSecurityConfigurerAdapter)使用相同的会话名称(JSESSIONID),因此即使在不同的浏览器中,ROLE_USER信息也会覆盖ROLE_ADMIN信息。

如果我不使用Spring Security,我将为ROLE_ADMIN和ROLE_USER提供两个不同的会话名称,我可以在不同的浏览器中同时使用这两个角色。

有没有办法解决Spring Security的这个问题?拜托,给我好主意。 提前谢谢

1 个答案:

答案 0 :(得分:-1)

我不确定,但您可以尝试添加

禁用-URL重写= “真”

spring-security.xml文件中的此标记中的

<http use-expressions="true" auto-config="false" entry-point-ref="loginUrlAuthenticationEntryPoint"  disable-url-rewriting="true" >

如果不起作用......请阅读本文,我认为它对您有所帮助。

<强> http://www.baeldung.com/spring-security-session