Arhn - архитектура программирования

CAS — Обмен сообщениями BACK_CHANNEL не работает

Я использую CAS 4.2.3. У меня есть 2 кассифицированных весенних приложения безопасности. Когда я делаю один выход из 1 приложения, оно не выходит из другого приложения. Согласно документации, BACK_CHANNEL должен отправить сообщение всем зарегистрированным приложениям.

Однако в моем случае я не вижу никаких сообщений от CAS в другом моем приложении.

Я также не вижу сообщений об ошибках в журналах CAS.

Может ли кто-нибудь дать указания, как лучше отладить эту проблему, чтобы решить эту проблему.

Я включил следующее в cas.properties

##
# Single Logout Out Callbacks
#
# To turn off all back channel SLO requests set this to true
slo.callbacks.disabled=false
#
# To send callbacks to endpoints synchronously, set this to false
slo.callbacks.asynchronous=true

Добавив следующее в мой клиент cas spring.xml,

<sec:http use-expressions="true" entry-point-ref="casEntryPoint">
    <sec:intercept-url pattern="/login/*" access="permitAll()" />
    <sec:intercept-url pattern="/lib/**" access="permitAll()" />
    <sec:intercept-url pattern="/**" access="hasRole('ROLE_ADMINISTRATOR')" />
    <sec:custom-filter ref="requestSingleLogoutFilter" before="LOGOUT_FILTER" />
    <sec:custom-filter ref="singleLogoutFilter" before="CAS_FILTER" />
    <sec:custom-filter position="CAS_FILTER" ref="casFilter" />
    <sec:logout logout-success-url="/logout.jsp?service=https://<hostname>/WebApp4/j_spring_cas_security_check" />
</sec:http>

<!-- This filter handles a Single Logout Request from the CAS Server -->
<bean id="singleLogoutFilter" class="org.jasig.cas.client.session.SingleSignOutFilter">
    <property name="artifactParameterName" value="SAMLart"></property>
</bean>

<!-- This filter redirects to the CAS Server to signal Single Logout should be performed -->
<bean id="requestSingleLogoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter">
    <constructor-arg value="https://<hostname>/cas/logout" />
    <constructor-arg>
        <bean class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler" />
    </constructor-arg>
    <property name="filterProcessesUrl" value="/logout/cas" />
</bean>

И добавил следующее в web.xml,

<listener>
    <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
26.09.2016

Ответы:


1

Вам нужно убедиться, что SLO включен в вашей конфигурации, и ваше приложение должно быть готово к захвату этого POST и выходу пользователя из системы.

27.09.2016
  • Не могли бы вы помочь мне с особенностями, как включить SLO. Это что-то нужно включить в cas.properties? У меня есть SingleSingoutFilter и прослушиватель, добавленный в клиент cas. Нужно ли мне делать что-то еще со стороны клиента cas, чтобы быть готовым перехватить запрос POST и обработать его. Во-первых, я даже не вижу, чтобы что-то публиковалось в клиенте cas (для других зарегистрированных сервисов cas), когда я выполнял команду /cas/logout. 27.09.2016
  • Я обновил описание кодом, который использовал для включения SLO. 27.09.2016
  • Я не знаю, как работает Spring Security. Для устранения неполадок необходимо обновить журналы CAS до DEBUG и посмотреть, что произойдет. Если вы видите, что сообщения уходят, значит, остальное на СС. 28.09.2016
  • На самом деле, я включил журналы TRACE. Я не вижу никаких сообщений об ошибках. Я смог, наконец, заставить его работать, используя FRONT_CHANNEL. Хотя хотелось бы, чтобы работало с BACK_CHANNEL. 30.09.2016
  • Журналы доступны по этой ссылке, нажмите здесь 03.10.2016
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..