2015-03-22 4 views
2

Я начинаю с OpenAM, я работаю над существующим проектом.OpenAM Authentication - logout

Я использую эту документацию, чтобы улучшить наш сервис аутентификации: http://docs.forgerock.org/en/openam/10.0.0/dev-guide/index/chap-authentication.html

Войти отлично работает, я получаю свой токен и добавить его в печенье. Я остаюсь на связи, когда просматриваю ограниченные веб-страницы.

Теперь я хочу сделать чистый выход из системы. Когда вы читаете документацию о выходе из системы, они предлагают этот код:

protected void logout(AuthContext lc) 
    throws AuthLoginException { 
    lc.logout(); 
    System.out.println("Logged Out!!"); 
} 

Но в моей программе, я не имею логин AuthContext больше.

Есть ли способ получить или создать AuthContext, связанный с моим пользователем? Этот звонок нужен? (фактически, мы модифицируем файлы cookie, которые должны быть отклонены OpenAM)

Спасибо.

Ответ:

SSOToken ssoToken = SSOTokenManager.getInstance().createSSOToken(tokenId); 
AuthContext authContext = new AuthContext(ssoToken); 
authContext.logout(); 

ответ

0

Во-первых, я думаю, вы должны быть в состоянии создать новый AuthContext, имея доступ к маркер сеанса, с помощью this конструктора.

Во-вторых, нет необходимости использовать ClientSDK для выполнения аутентификации удаленно, вы также можете использовать REST APIs, что, вероятно, было бы немного более легким.

+0

Спасибо за ваш ответ, теперь я могу выйти из системы: см. Исходное сообщение для ответа. Что касается ClientSDK, я присоединяюсь к существующему проекту, и SDK повсюду, мне нужно больше опыта, чтобы подумать о его замене. – Guymage

+1

Обратите внимание, что вы также можете просто использовать destroyToken на SSOTokenManager, см. Http://download.forgerock.org/downloads/openam/javadocs/internal/com/iplanet/sso/SSOTokenManager.html#destroyToken(com.iplanet.sso. SSOToken) –

+0

Интересно! благодаря – Guymage

 Смежные вопросы

  • Нет связанных вопросов^_^