允许仅通过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的这个问题?拜托,给我好主意。 提前谢谢
答案 0 :(得分:-1)
我不确定,但您可以尝试添加
禁用-URL重写= “真”
spring-security.xml文件中的此标记中的
<http use-expressions="true" auto-config="false" entry-point-ref="loginUrlAuthenticationEntryPoint" disable-url-rewriting="true" >
如果不起作用......请阅读本文,我认为它对您有所帮助。