Spring Security 3.1.4 taglib авторизация / аутентификация не работают с иерархией ролей в JSF 2.2 на Tomcat 7

Роль roleHeirarchies учитывается для выражений веб-безопасности, определенных как URL-адреса перехвата через пространство имен http, но не в выражениях, использующих библиотеку тегов JSP Authorize.

Я уже много читаю ...ref1 ref2 REF3 REF4 REF5 ref6

****РЕДАКТИРОВАТЬ:****Ref1 и Ref6 упоминают материалы о проблеме с порядком фильтров и контекстом безопасности, недоступным в jsp ... (кстати, ям использую jsf2) может есть что копать ...

РЕДАКТИРОВАТЬ 2: JSF обрабатывает тег безопасности lib? Я читаюэтот и попробоватьтот без успеха

РЕДАКТИРОВАТЬ 3: : Я пытался установить с помощью Maven Spring-Faces 2.3.2 и Spring-Security-TagLib ... ничего не происходит ... Некоторые Туто сказал, чтобы создать собственный taglib.xml, но это не такЭто тоже работает, я думаю, что это было для старой версии ...

Я проверял это faceContext.externalContext.isUserInRole ('РОЛЬ') и sec: авторизовать доступ = "hasRole (»Роль') ... первый работает только еслита же роль, но этоне принимая во внимание иерархические вещи ... И sec: autorize просто ничего не делает, все роли напечатаны.

Посмотрите пример выше с пользователем ROLE ROLE_ADMIN_PROFILER_NGS:

     // WORKS <br><br>
 // SHOULD APPEAR BUT NOTHING HAPPENS<br><br>
 // SHOULD NOT APPEAR AND THAT'S THE CASE<br><br>

/* ALL THE THREE NEXT ARE DISPLAYED WHITHOUT CONTROL AUTORIZATION.*/

ROLE_ADMIN_PROFILER_NGS<br><br>
ROLE_GUEST <br><br>
ROLE_ADMIN  <br><br>

Это то, к чему я пытался получить доступ для тестирования с помощью роли иерархии:

Когда пользователь приходит только с ролью гостя ... Все теги показаны ... они не могутt появляется только GUEST (см. определение внизу):

    
    BABA
    GUEST
    ADMIN

Это моя конфигурация безопасности:

   
      
      
       
         
    
    
    
     
    
        
    
   
     
    
  


      



  
    
       
        
            
        
       

    
  




    



    
        
            ROLE_ADMIN > ROLE_ADMIN_PROFILER_NGS
            ROLE_ADMIN_PROFILER_NGS > ROLE_GUEST
            ROLE_GUEST > ROLE_GUEST_PROFILER_NGS  
            ROLE_ADMIN > ROLE_ADMIN_PROFILER_CGH
            ROLE_ADMIN_PROFILER_CGH > ROLE_GUEST
            ROLE_GUEST > ROLE_GUEST_PROFILER_CGH
        
    
 

Большое спасибо, пожалуйста, если у вас есть другая идея для тестирования ...

РЕДАКТИРОВАТЬ 3:

Почему он возвращает 0 для RoleHierarchyVoter и 1 для WebExpressionVoter ... это нормально?

14: 48: 32,861 DEBUG FilterSecurityInterceptor: 194 - Защищенный объект: FilterInvocation: URL: / Home; Атрибуты: [hasRole ('ROLE_GUEST». Пароль защищен]; Включено: правда; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Предоставленные полномочия: ROLE_ADMIN_PROFILER_NGS; Полномочия: [ЗАЩИЩЕНО]; Аутентифицировано: правда; Подробности: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: 192.168.154.18; SessionId: 084939D4E097F41ACA6A1F24CD8390BE; Предоставленные полномочия: ROLE_ADMIN_PROFILER_NGS 14: 48: 32,861 DEBUG RoleHierarchyImpl: 117 - getReachableGrantedAuthorities () - из ролей [ROLE_ADMIN_PROFILER_NGS] можно получить [ROLE_GUEST_PROFILER_GLE_RG_PLE_RG_RG_RG_RG_RG_RG_RG_RG_RG_RG_RF_RG_RF_RG_RG_RUS 14: 48: 32,861 Утверждение отладки Основано: 65 - Избиратель: org.springframework.security.access.vote.RoleHierarchyVoter@6ff43d69, возвращено: 0 14: 48: 32,862 Отладочная роль RoleHierarchyImpl: 117 - getReachableGrantedAuthorities_OILING_RING_OF_NORG_NORG_RING_FL_RING_FL_RING_S_F_RING_S_FIL_NORG_RING_FIN_F_N_RF может достигать [ROLE_GUEST_PROFILER_NGS, ROLE_GUEST_PROFILER_CGH, ROLE_ADMIN_PROFILER_NGS, ROLE_GUEST] за ноль или более шагов. 14: 48: 32,862 ОТЛАДКА Утвердительно Основано: 65 - Избиратель: org.springframework.security.web.access.expression.WebExpressionVoter@3fe932d5, возвращено: 1 14: 48: 32,862 DEBUG FilterSecurityInterceptor: 215 - Авторизация успешна

РЕДАКТИРОВАТЬ 5:

     
           
     

>     
>         
>                
>         
>     

Ответы на вопрос(1)

Ваш ответ на вопрос