Я нахожу что тег <sec:IfAnyGranted roles="ROLE_ADMIN" >
проигнорирован и на .xhtml
страница я получаю следующее сообщение:
The attribute **roles** is not defined in Component's interface
Стандартная библиотека тегов Spring Security не работает с JSF.
Вы можете использовать версию Facelets .
Затем вы можете использовать функцию sec: ifAnyGranted ()
(не тег) внутри выражения:
<p:menubar xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:sec="http://www.springframework.org/security/facelets/tags">
...
<p:submenu label="#{msgs['menu.report']}"
rendered="#{sec:ifAnyGranted('ROLE_ADMIN, ROLE_REPORTER')}">
Это часть рабочего кода, который показывает меню только для заданного использования. Обратите внимание, что я не использую библиотеку тегов Spring JSP по умолчанию , а использую версию Facelets.