Требовать от пользователей заполнения профиля после успешной аутентификации

StackOverflow https://stackoverflow.com/questions/1687199

  •  18-09-2019
  •  | 
  •  

Вопрос

Я разрабатываю отдельный пользовательский реестр, пользовательский портлет входа в систему и пользовательский портлет профиля для Websphere Portal 6.1.Некоторые существующие пользователи не заполнили одно или несколько обязательных полей в своих профилях.

В следующий раз, когда эти пользователи успешно войдут в систему, как я могу заставить портал перенаправить их на портлет пользовательского профиля до того , как предоставить им доступ к остальной части сайта?

Это было полезно?

Решение

Похоже, что Websphere Portal 6.1 поставляется с API для отправки запросов на проверку подлинности через цепочку фильтров.Я нашел статью, описывающую API в developer works ('Новые API-интерфейсы безопасности в Websphere Portal').

В частности, com.ibm.portal.auth.Интерфейс ExplicitLoginFilter позволяет подключаться во время последовательности аутентификации и динамически изменять направление перенаправления системы после проверки учетных данных пользователя.Вот сокращенный пример:

public class CustomLoginFilter implements ExplicitLoginFilter {
    public void login(HttpServletRequest req, HttpServletResponse resp, 
        String userId, char[] password, 
        FilterChainContext portalLoginContext, Subject subject, 
        String realm, ExplicitLoginFilterChain chain) 
        throws LoginException, WSSecurityException, 
        com.ibm.portal.auth.exceptions.LoginException {  

        //Validate the user's credentials.
        chain.login(req, resp, userId, password, portalLoginContext, subject, realm);  

        //Redirect to profile portlet if required profile fields are incomplete.
        if(incompleteProfile(userId)) {
            portalLoginContext.setRedirectURL(getURLForProfilePortlet());
        }
    }

    //Other methods...
}

ExplicitLoginFilter и его зависимости расположены в следующих файлах jar, которые вы должны добавить в свой classpath при компиляции вашего кода:

Начиная с корневого каталога вашего Websphere Portal...
/base/wp.auth.base/shared/app/wp.auth.base.jar
/base/wp.base/shared/app/wp.base.jar

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top