Утилита SingleSignOutHttpSessionListener, когда используется SingleSignOutFilter - PullRequest
0 голосов
/ 15 октября 2018

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

@Bean
public FilterRegistrationBean singleSignOutFilterRegister() {
    FilterRegistrationBean registration = new FilterRegistrationBean();
    SingleSignOutFilter filter = new SingleSignOutFilter();
    Map<String, String> map = new HashMap<String, String>();
    map.put("casServerUrlPrefix", this.logoutUrl);
    registration.setInitParameters(map);
    registration.setFilter(filter);
    registration.setEnabled(true);
    registration.setOrder(1);
    return registration;
}

@EventListener
public SingleSignOutHttpSessionListener singleSignOutHttpSessionListener(HttpSessionEvent event) {
    return new SingleSignOutHttpSessionListener();
}

Я сделал это, потому что в каждом уроке, через который я прошел, они говорили, что надо поставить SingleSignOutFilter и SingleSignOutHttpSessionListener.Так что это работает, но, углубляясь в каждый из этих классов, я не понимаю полезности / цели / значения SingleSignOutHttpSessionListener.Если я его удаляю, он все равно работает нормально, но я вижу на этом форуме , что иногда сессия не уничтожается фильтром.

Мой вопрос: какэто может случиться, когда это может случиться, и как воспроизвести это, чтобы проверить это?

1 Ответ

0 голосов
/ 16 октября 2018

как это могло случиться, когда это могло случиться, и как воспроизвести это, чтобы проверить это?

На форуме говорится:

Sessions don 'Фильтр всегда уничтожается (т. е. они становятся недействительными заранее или кто-то не выходит из CAS).Слушатель обрабатывает эту ситуацию.

В ситуации, когда время сеанса приложения истекает до тайм-аута сеанса CAS SSO (то есть фильтр SLO еще не получает возможность перехватить сообщения SLO, поскольку CAS имеетне было возможности выйти из системы), слушатель включается, чтобы удалить необходимую информацию из карты хранения сеанса.Это может произойти, как уже было сказано, поскольку время ожидания приложения наступает до истечения времени ожидания сеанса CAS, и обходная функция выхода из CAS, которая отправляет сообщения SLO для фильтра SLO, выполняет свою работу.

...