Как CAS обрабатывает время ожидания сеанса - PullRequest
2 голосов
/ 13 июля 2011

Мое понимание CAS:

Имеется 1 сервер CAS и 2 клиента CAS,

успех входа в client1 через CAS Пользователь работает на client1, поэтому сессия client1 обновляется действием пользователя. Но тайм-аут сеанса сервера CAS. Пользователь попытается получить доступ к client2, когда проверка CAS обнаружит, что сеанс истек, поэтому снова необходимо войти в систему, но client1 уже входит в систему.

Это не имеет смысла, пожалуйста, поправьте меня, если я ошибаюсь.

Ответы [ 2 ]

4 голосов
/ 14 июля 2011

CAS использует «сервисы» для дифференциации веб-сайтов.Внутри cas будет служба «client1» и «client2», каждая со своим TicketGrantingTicket.Тайм-аут сеанса контролируется с помощью политики истечения билета серверов CAS для TGT, описанной здесь:

https://wiki.jasig.org/display/CASUM/Ticket+Expiration+Policy

Таким образом, каждый из серверов будет иметь свой собственный тайм-аут.Поэтому, когда я захожу на client1 и нажимаю на ссылку, это не повлияет на время ожидания сеанса для client2.

Если вы хотите, чтобы два сайта влияли на время ожидания, вам нужно будет заставить их использовать один и тот жеобслуживать и расследовать использование билетов по доверенности:

https://wiki.jasig.org/display/CAS/Proxy+CAS+Walkthrough

2 голосов
/ 03 марта 2012

Причина, по которой Client1 все еще может входить в систему, заключается в том, что вы не обрабатываете сообщение о выходе из системы, которое отправляет CAS, когда истекает срок действия пользовательского билета TicketGrantingTicket.

Когда в CAS происходит событие выхода из системы, оно отправляет сообщение о выходе из системы всем зарегистрированным службам. Client1 должен обработать это, посмотрев на запрос. Если случайно вы используете PHP, вам нужно взглянуть на $ _REQUEST для сообщения о выходе.

...