Получение атрибутов Shibboleth из запроса коннектора AJP

Я столкнулся со странной проблемой при работе с аутентификацией Shibboleth, работающей на Apache, и когда Tomcat7 работает на серверной части, Apache отправляет все через mod_proxy_ajp. То же самое и с параметрами из Shibboleth.

В документации прямо указано, что 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 никогда не появляются.


person David Polák    schedule 10.08.2013    source источник


Ответы (1)


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

req.getAttribute("uid");

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

Это пахнет ошибкой или несвоевременной связью где-то между AJP и Spring или JSF...

person David Polák    schedule 10.08.2013
comment
Фактическое использование req.getAttribute(uid) задокументировано в wiki.shibboleth .net/confluence/display/SHIB2/ для Java. - Также интересно stackoverflow. ком/вопросы/38974233/ - person JacquesLeRoux; 12.09.2017