В настоящее время я пытаюсь реализовать клиент 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
. Если я удалю его, он все равно будет работать нормально, но я вижу в этом forum, что иногда сеанс не уничтожается фильтром.
У меня вопрос: как это может случиться, когда это может случиться и как воспроизвести это, чтобы проверить?