Получение атрибутов Shibboleth через Struts-1

Я пытаюсь интегрировать аутентификацию Shibboleth со старым приложением Struts-1, обслуживание которого я унаследовал, но не могу понять, как получить доступ к атрибутам Shibboleth.

Это то, что я пробовал:

public final class AuthenticateAction extends MappingDispatchAction {

    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {


        Enumeration attributeNames = request.getAttributeNames();
        while (attributeNames.hasMoreElements()) {
            String attributeNm = (String) attributeNames.nextElement();
            System.out.println("DEBUG: " + attributeNm);
        }

        String eppn = (String) request.getAttribute("eppn"); // <-- Null 

Ни один из ожидаемых атрибутов Shibboleth не распечатывается при переборе имен атрибутов в приведенном выше коде.

Как получить доступ к атрибутам Shibboleth?


person nmc    schedule 10.07.2013    source источник
comment
Разве они не будут на сессии?   -  person Sotirios Delimanolis    schedule 10.07.2013
comment
@SotiriosDelimanolis Я также пытался зациклить и напечатать имена атрибутов из request.getSession().getAttributeNames() и не смог найти атрибуты, которые искал.   -  person nmc    schedule 10.07.2013
comment
В действии, которое вы опубликовали, вы уже авторизованы? Платформа безопасности ничего не сохранит, пока пользователь не пройдет аутентификацию.   -  person Sotirios Delimanolis    schedule 10.07.2013
comment
@SotiriosDelimanolis Да, я авторизован.   -  person nmc    schedule 10.07.2013
comment
TBH, я не знаю shibboleth, но некоторые другие фреймворки веб-безопасности, которые я использовал, используют собственное управление сеансами. У вас может быть доступ к нему с помощью некоторого статического класса через ThreadLocals.   -  person Sotirios Delimanolis    schedule 10.07.2013


Ответы (1)


Оказывается, в моем случае это была проблема с конфигурацией на стороне сервера.

Следуя инструкциям здесь: https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPJavaInstall, я смог получить атрибуты просто так:

String eppn = (String) request.getAttribute("eppn"); // <-- no longer null

person nmc    schedule 15.07.2013
comment
что ты сделал? - person VK321; 08.11.2018