Usign JSF + Spring Security.
Решение 1 - ориентированный на пользовательский интерфейс:
JSF
страница отображает панель с пользователями, если аутентифицированное лицо имеет только права доступа ROLE_ADMIN
.
<p:panel rendered="#{facesContext.externalContext.isUserInRole('ROLE_ADMIN')}">
...
Решение 2 - бэкэнд-ориентированный (аннотировать соответствующий метод DAO):
@Transactional
@PreAuthorize("hasRole('ROLE_ADMIN')")
public List<User> getUsers() {
return sessionFactory.getCurrentSession().createCriteria(User.class)
.list();
}
Резюме:
ПохожеАтрибут JSF rendered
не является гибким решением, а аннотированные методы DAO не удобны для пользователя из-за перенаправления на 403
.
Что такое изящное решение, которое позволяет мне НЕ отображать панель или ссылку, чтоне соответствуют конкретным органам власти?