|
|
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. Подскажите в какую сторону копать, так сказать, задайте направление. Допустим у меня в вебприложении есть url вида /employee/4 , где 4 - ключ сотрудника. При запросе ресурса я беру активного пользователя и проверяю через БД, может ли он просматривать этот ресурс. Примеры, которые находил, оперируют со статичными url. А тут получается, для одного можно, для другого нет. Коды сотрудников берутся из БД. Хочется определить все доступы к разным ресурсам в каком-то одном месте и не размазывать по контроллерам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2015, 21:50 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
zz5Добрый вечер. Подскажите в какую сторону копать, так сказать, задайте направление. Допустим у меня в вебприложении есть url вида /employee/4 , где 4 - ключ сотрудника. При запросе ресурса я беру активного пользователя и проверяю через БД, может ли он просматривать этот ресурс. Примеры, которые находил, оперируют со статичными url. А тут получается, для одного можно, для другого нет. Коды сотрудников берутся из БД. Хочется определить все доступы к разным ресурсам в каком-то одном месте и не размазывать по контроллерам. Может погуглить про аннотацию @PathVariable? Не?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 06:54 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Речь не об этом. Как пользоваться этой аннотацией понимаю. Но представьте десяток таких методов, раскиданных по разным контроллерам. Хочется вытащить логику проверки прав из контроллеров в централизованное место. Везде предлагается intercept url spring security, но что делать, если url содержит ключ domain-объекта и его доступ пользователя должен определиться в runtime? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 09:59 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
zz5, Если, я правильно понял, то http://docs.spring.io/spring-security/site/docs/3.0.x/reference/domain-acls.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 10:18 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
а что вам мешает сделать свой сервис проверки прав? Код: java 1. 2. 3. 4. 5. permissionService - сервис который будет выбирать данные из бд и смотреть можно ли юзеру что-то делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 10:20 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
friz777permissionService - сервис который будет выбирать данные из бд и смотреть можно ли юзеру что-то делать. имменно этого он и не хочет делать, писать if (permissionService.check(id)) в 123 методах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 12:02 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Чем плохо использовать аннотацию @preauthorize? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 20:47 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
или через spring interceptor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 20:48 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
В общем, хотелось бы избежать логики в контроллерах, но, боюсь, не получится. Можно через aop, но этот путь видится тернистым. А в идеале нашел такую фичу, но она еще не реализована http://forum.spring.io/forum/spring-projects/security/121214-web-security-expressions-and-pathvariables https://jira.spring.io/browse/SEC-2059 Такое решение мне кажется наиболее походящим. Но... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 22:23 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
zz5В общем, хотелось бы избежать логики в контроллерах, но, боюсь, не получится думаю задача реализуемая, но нужно хорошо познакомиться с внутренней кухней spring security. начальную ссылку тебе дал Blazkowicz, имхо ключевой абзац в ней автор3. Write an AccessDecisionVoter to enforce the security and open the target Customer domain object directly. This would mean your voter needs access to a DAO that allows it to retrieve the Customer object. It would then access the Customer object's collection of approved users and make the appropriate decision. вдумчивое гугление и изучение исходников могло бы дать результат, но за тебя это никто делать не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 23:40 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, направление поисков понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2015, 21:42 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
zz5, А что мешает тупо добавить еще один фильтр? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2015, 11:01 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Честно говоря, недеелся (все еще надеюсь) найти более гибкое решение без непосредственного кодирования. Пока смотрю в сторону spring expression + xml. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 11:49 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
zz5, Там непосредственного кодирования на десяток строк, а регулярки для проверки можно из того же xml или .properties подтаскивать, а то и вообще из базы. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 12:14 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевТам непосредственного кодирования на десяток строк деклоративное программирование - 10 строк в конфиге - наше всё )) Тенденция однако) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 13:09 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
zz5Добрый вечер. Подскажите в какую сторону копать, так сказать, задайте направление. Допустим у меня в вебприложении есть url вида /employee/4 , где 4 - ключ сотрудника. При запросе ресурса я беру активного пользователя и проверяю через БД, может ли он просматривать этот ресурс. Примеры, которые находил, оперируют со статичными url. А тут получается, для одного можно, для другого нет. Коды сотрудников берутся из БД. Хочется определить все доступы к разным ресурсам в каком-то одном месте и не размазывать по контроллерам. вам нужно назначать пользователям роли с правами доступа к ресурсу, а не делать проверку в ручную. Spring Security проверяет доступ автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2015, 02:30 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2125669]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 459ms |

| 0 / 0 |
