как добавить перехватчик весной - PullRequest
0 голосов
/ 07 ноября 2011

Я использую Spring Security 3.0.3 для проекта. Моя пользовательская информация загружается из базы данных.У меня есть следующий перехватчик

<intercept-url pattern="/admin/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/**" access="ROLE_USER"/>

Я хочу добавить перехватчик к данным пользователя.Когда я регистрируюсь с user1 (запрашивающий как роль), он может видеть только определенные данные user1.

http://localhost:7009/Test/requester//30351?menuId=app.requester.new

, но когда я захожу в систему с другим пользователем2 (запрашивающая роль в роли) и введите указанный выше URL в браузере.

http://localhost:7009/Test/requester//30351?menuId=app.requester.new. 

он может видеть данные пользователя1.Могу ли я добавить перехватчик, чтобы он ограничивал данные другого пользователя.

Ниже приведен сценарий 1> вход в систему с user1, и он может видеть следующий список данных 101 102 103, когда я нажимаю на 102 данных, он открывает детали 102 данных.

http://localhost:7009/Test/requester//102?menuId=app.requester.new. 

2> входс пользователем2, и он может видеть следующий список данных 104 105 106

, когда я нажимаю 105 данных, он открывает детали 105 данных.

http://localhost:7009/Test/requester//105?menuId=app.requester.new.

, но когда я копирую ссылку user1

 http://localhost:7009/Test/requester//102?menuId=app.requester.new.  

и вставьте в браузер.user2 может видеть детали данных user1.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2011

Один из способов сделать это - использовать язык выражений Spring и пользовательский оценщик разрешений. Вот что мы сделали, чтобы реализовать схему авторизации для департамента / подотдела , как управлять аутентификацией пользователя с помощью spring mvc . Это позволит вам создать собственную логику, чтобы определить, что пользователь1 может видеть и т. Д.

Извлечение http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html. Посмотрите на аннотацию @PostFilter - если ваш набор данных возвращается как коллекция или массив, Spring Security может автоматически отфильтровывать элементы данных на основе вашего пользовательского оценщика разрешений.

0 голосов
/ 07 ноября 2011

Вы не фильтруете все в конфигурации безопасности Spring, а делаете это в поле зрения или в контроллере. Вот очень хороший учебник, который покажет вам, как использовать Spring Security в вашем случае.

http://static.springsource.org/spring-security/site/petclinic-tutorial.html

Если вы используете JSP для своего представления, вы можете использовать Spring Security Taglib для обработки представления собственных данных пользователя, а для данных другого пользователя вам потребуется поместить логику фильтрации в контроллер и передать их как модель в Посмотреть. Тем не менее, точное решение зависит от вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...