|
|
|
Java Проверка уровня доступа
|
|||
|---|---|---|---|
|
#18+
Продолжаю свои разбирательства со Spring, но пока что не хочу использовать Spring Security в нашем проекте. Хочу так сказать, пока что по-простому всё сделать. Код: sql 1. Итак, допустим у меня есть два контроллера: PublicPage.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. и SecretPage.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Ок. Контроллеры ловят запросы, их обрабатывают, все ок. Теперь нужно добавить проверку доступа. Решил сделать интерфейс AccessControlStrategy , который выглядит вот так: Код: java 1. 2. 3. Идея в том, что если некий объект реализет этот интерфейс, то он должен возвращать true, если объект доступен, и false, если объект не доступен. Далее делаю абстрактный класс WebAccessControlStrategy : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. и теперь определяем два типа доступа: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Вроде всё выглядит неплохо. Меняем контроллеры: PublicPage.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. и SecretPage.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Но вот нормален ли такой подход? В чем могут быть потенциальные грабли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 09:51:45 |
|
||
|
Java Проверка уровня доступа
|
|||
|---|---|---|---|
|
#18+
scymaksНо вот нормален ли такой подход? В чем могут быть потенциальные грабли? ненормален, т.к. сначала не пишут своё, а делают обзор готового. Причём, я совсем не про спринг. Или так....спринг, как _один из_ готового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 11:31:19 |
|
||
|
Java Проверка уровня доступа
|
|||
|---|---|---|---|
|
#18+
Petro123, Ну я же в академических целях. Знаю, что есть готовые компоненты. Но хочу так сказать сделать что-то очень простое и работающее, без дополнительных библиотек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 12:09:46 |
|
||
|
Java Проверка уровня доступа
|
|||
|---|---|---|---|
|
#18+
scymaksНо вот нормален ли такой подход? В чем могут быть потенциальные грабли? Во-первых, я бы вынес инстанцирование вашей конкретной стратегии из акшенов контроллера. Спринг он IoC контейнер, поэтому явное указание стратегии лучше вынести на уровень внедрения зависимостей. Во-вторых, вместо "размазывания" логики проверки по всем экшенам всех контроллеров, лучше посмотреть в сторону интерцепторов и сделать проверку в одном месте, чем определять её в каждом экшене. Кстати, такой подход встречается в вумных книжках, и называют его защитой "для бедных". В-третьих, почему "для бедных"? Потому что в этих вумных книжках рекомендуют использовать для целей аутентификации и авторизации Spring Security. Это не так сложно, как кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 12:13:13 |
|
||
|
Java Проверка уровня доступа
|
|||
|---|---|---|---|
|
#18+
scymaks, в академических целях тоже делают обзор и поиск http://www.sql.ru/forum/actualthread.aspx?tid=492719 а так, чем ближе к БД - тем лучше. Т.е. фильтры, и organism написал - интерцепторы ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 13:20:13 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=261&tid=2130639]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
46ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
49ms |
get tp. blocked users: |
3ms |
| others: | 340ms |
| total: | 498ms |

| 0 / 0 |
