Я пытаюсь реализовать CAS Single Sign Out с помощью Java Servlet и фильтровать сопоставление в web.xml.
Фильтр в web.xml выглядит примерно так.
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/out</url-pattern>
</filter-mapping>
И на схеме '/out' url, вызывая Java-сервлет, который состоит из метода session.invalidate() и после этого перенаправляет cas/logout/. Но все же я не могу выйти из системы правильно.
Это мой журнал:
DEBUG [http-bio-8080-exec-10] (HashMapBackedSessionMappingStorage.java:46) - Attempting to remove Session=[]
DEBUG [http-bio-8080-exec-10] (HashMapBackedSessionMappingStorage.java:55) - No mapping for session found. Ignoring.
Пожалуйста помоги. Заранее спасибо.
В вашем журнале указывается, что для вашего конкретного сеанса в приложении CAS не было найдено сопоставления. Возможной причиной может быть то, что сервер приложений CAS не использовался для входа в систему, поэтому не было сопоставления сеанса и токена браузера. Типичный поток идет следующим образом. Вы пытаетесь получить доступ к защищенному ресурсу приложения A и перенаправлены на страницу входа в систему CAS. Вы вводите данные аутентификации, а CAS проверяет ваши данные и выдает токен, который затем перенаправляется в приложение A, где приложение A снова вызывает сервер CAS для проверки токена, и при успешном завершении сеанса с приложением A считается аутентифицированным. При дальнейшем доступе к приложению A дополнительной проверки подлинности не требуется. Во время выхода из приложения A вы убедитесь, что вы отменили сеанс на A (который вы делаете с сервлетом), а затем перенаправите его на URL-адрес выхода сервера CAS, чтобы он мог выйти из сеанса на сервере CAS.
casServerUrlPrefix
для чего жеcasServerUrlPrefix
параметр фильтраcasServerUrlPrefix
?