Существует много документации о том, как использовать теги jsp, aop, аннотации, контекст приложения и все подобные вещи ... но как я могу получить прямой доступ к методам контроля доступа? Какой класс мне нужно создать, если есть? Есть ли скрытый боб, о котором мне нужно знать? Не похоже, что SecurityContextHolder
- это то, что нужно для поиска.
Я хотел бы сделать что-то вроде этого:
if(springSecurityObject.isAuthorized("hasAnyRole('DIRECTOR', 'ADMIN')")) {
// ... do something
}
Или еще лучше:
if(springSecurityObject.hasAnyRole('DIRECTOR', 'ADMIN')) {
// ... do something
}
Спасибо!
РЕДАКТИРОВАТЬ: Похоже, что сотрудники службы безопасности Spring используют предоставленные полномочия для самого объекта пользователя:
https://fisheye.springsource.org/browse/spring-security/taglibs/src/main/java/org/springframework/security/taglibs/authz/AbstractAuthorizeTag.java?r=fc399af136492c6c37cdddca6d44e5fe57f69680
Думаю, было бы полезно, если бы они абстрагировали тонну этого кода и вместо этого поместили его в хороший набор классов - то, что могли бы использовать как библиотеки тегов, так и реальные пользователи. В конце концов, они являются частными вспомогательными методами ... общий запах, что они, вероятно, должны существовать в некоторых классах.
Так как они выполняют сантехнику вручную, я должен предположить, что того, чего я хочу, не существует.