2013-08-10 4 views
2

У меня возникла странная проблема при работе с аутентификацией Shibboleth, запущенной на Apache, а когда Tomcat7 работает на задней панели, Apache отправляет все через mod_proxy_ajp. И так происходит с параметрами из Сибболета.Извлечение атрибутов Shibboleth из запроса на соединитель AJP

В документации (https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPJavaInstall) оно явно указано, что AJP отправляет только атрибуты с префиксом attributePrefix="AJP_" и что разработчик не должен принимать ярлыки и разрешить отправку аутентификации атрибутов корыта HTTP заголовки (https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPSpoofChecking)

я пытаюсь извлечь атрибуты используя

HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance() 
         .getExternalContext().getRequest(); 

Enumeration<String> e = req.getAttributeNames(); 

Но независимо от того, что я пытаюсь, никакие атрибуты Shibboleth никогда не появляются.

ответ

4

После двух часов попыток выяснить, что я делаю неправильно. Я попытался извлечь атрибут по имени, используя.

req.getAttribute("uid"); 

И почему-то это работает. Несмотря на то, что "uid" не указан в getAttributeNames();

Он пахнет как ошибка, или несвоевременное связи где-то между ОЮЛ и весной или JSF ...

+0

На самом деле с помощью req.getAttribute («UID») документирована в https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPAttributeAccess # NativeSPAttributeAccess-Tool-SpecificExamples для Java. - Также это интересно https://stackoverflow.com/questions/38974233/shibboleth-sp-reading-assertion-attributes-from-java – JacquesLeRoux