Выход из CAS и удаление куки - PullRequest
7 голосов
/ 24 февраля 2012

Я только что создал сервлет HelloWorld и внедрил на нем CAS. Я могу войти в систему без проблем, и CAS устанавливает 3 куки в моем браузере, CASGT и 2 JSESSIONID 1 для / cas и еще один для / helloWorld

Проблема в том, что тогда я получаю доступ к https://blah:8443/cas/logout,. Я вижу экран успешного выхода из системы, но файлы cookie все еще находятся в моем браузере, поэтому я не выхожу, я могу снова войти в / helloWorld появится экран входа в систему.

Знаете ли вы, что я должен сделать для CAS, чтобы удалить файлы cookie, созданные при выходе из системы?

Заранее спасибо

Ответы [ 2 ]

6 голосов
/ 24 февраля 2012

CASGT cookie устанавливается CAS и должен быть отключен им. Процедура выхода из CAS работает следующим образом:

  1. Вы действительно переходите на страницу выхода из CAS. Страница должна знать приложение, из которого вы выходите из системы. Одним из способов является перенаправление на страницу выхода из CAS из вашего приложения, указав URL-адрес перенаправления в качестве параметра.

  2. Ваш файл cookie удален, и вы затем перенаправлены в приложение через POST-запрос.

  3. SingleSignOutFilter перехватывает специальный параметр "logoutRequest" и фактически уничтожает отображение билета / сеанса, которое было в нем с самого начала, а также делает недействительным текущий сеанс.

Чтобы отладить CAS, включите ведение журнала на уровне TRACE. Таким образом, вы узнаете, был ли получен правильный запрос или был ли сеанс признан недействительным.

Я также советую вам взглянуть на код пакета org.jasig.cas.client.session, который довольно прост.

3 голосов
/ 16 марта 2012

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

Где работает единый выход:

Клиенты / Языки, чье управление сеансами поддерживается на стороне сервера.Клиенты CAS могут затем получить доступ к информации о сеансе, чтобы завершить сеанс.

Там, где единый выход не работает:

Клиенты / языки, единственное управление сеансом которых состоит из файлов cookie.CAS не имеет доступа к файлам cookie браузера и поэтому не может завершить сеанс.(однако, закрытие окна браузера должно сделать это)

И я думаю, что это в значительной степени ваш случай.На основе файлов cookie невозможно создать SSout, но если вы можете использовать такую ​​среду, как Spring (как мы делаем в наших проектах), SSout прост в настройке и очень удобен

...