2014-09-26 7 views
0

Доступ к пути (www.mywebsite.com/admin/) разрешен только с помощью ROLE_ADMIN и других путей (www. mywebsite.com/....) разрешен доступ с помощью ROLE_USER или ROLE_ANONYMOUS. У меня есть два разных класса (расширяет WebSecurityConfigurerAdapter) для этой политики, и они успешно выполняются.Несколько WebSecurityConfigurerAdapters работают правильно в весенней безопасности 3.2.5.RELEASE, но JSESSIONID перезаписывается в разных браузерах.

Проблема при входе в систему как ROLE_ADMIN в www.mywebsite.com/admin/ .. в одном браузере, а затем я войти в систему как ROLE_USER в www.mywebsite.com/... в другом браузере, и затем я перехожу на сайт www.mywebsite.com/admin/.., моя информация сеанса администратора (ROLE_ADMIN) перезаписывается информацией о сеансе пользователя, поэтому я получаю сообщение об ошибке (Permission Deny).

Мое понимание обоих классов (расширяет WebSecurityConfigurerAdapter) использует одно и то же имя сеанса (JSESSIONID), поэтому информация ROLE_USER перезаписывает информацию ROLE_ADMIN, хотя в разных браузерах.

Если я не использую Spring Security, я предоставил два разных имени сеанса для ROLE_ADMIN и ROLE_USER, и я могу использовать обе роли одновременно в разных браузерах.

Есть ли способ решить эту проблему с помощью Spring Security? Пожалуйста, дайте мне хорошие идеи. Спасибо заранее

+0

ли другой браузер (т.е. Firefox и хром) или окно/вкладку разные. В последнем случае вы в основном переопределяете информацию о сеансе, и именно так работают браузеры, это первое, что не должно произойти, и у вас есть еще одна проблема. –

ответ

-1

Я не уверен, но вы можете попробовать добавить

отключают-url-перезаписи = «истинную»

в этом теге весны-security.xml файла

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

если не работает ... Пожалуйста, прочитайте эту статью, я думаю, вам это поможет.

http://www.baeldung.com/spring-security-session

 Смежные вопросы

  • Нет связанных вопросов^_^