Почему мой тег `<sec: IfAnyGranted role =" ROLE_ADMIN ">` игнорируется? - PullRequest
1 голос
/ 28 мая 2010

Я считаю, что тег <sec:IfAnyGranted roles="ROLE_ADMIN" > игнорируется, и на странице .xhtml появляется следующее сообщение:

The attribute **roles** is not defined in Component's interface

1 Ответ

2 голосов
/ 17 июля 2010

Стандартная библиотека тегов 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 taglib , но версию Facelets.

...