Spring-SAML Бесконечный цикл перенаправления после успешной аутентификации

После успешной аутентификации SAML:

AuthNRequest;SUCCESS;0:0:0:0:0:0:0:1;https://localhost:8443/saml/metadata;http://www.okta.com/exkdwf3hodKFkefLO0h7;;;

Браузер снова попадает в бесконечный цикл.

Я сидел с отладчиком, проходящим через код Spring, и похоже, что он выдает ошибку в BasicAuthenticationFilter, вызывая SAMLAuthenticationProvider, который не поддерживает UsernamePasswordAuthenticationToken, и выдает исключение, которое, в свою очередь, отправляет браузер в бесконечное перенаправление.

Кто-нибудь видел это раньше?


person JavaHead    schedule 12.02.2018    source источник


Ответы (2)


Сначала я попытался включить решение руководства разработчика Okta в приложение моей компании, которое можно найти по адресу:

https://developer.okta.com/blog/2017/03/16/spring-boot-saml

Использование библиотеки spring-security-saml-dsl.

Это не удалось, не знаю, почему, из-за конфигурации SpringBoot или чего-то еще. Фильтры неправильно настраивались, и браузер попадал в бесконечный цикл перенаправления.

Вместо этого я вернулся к проекту Spring-SAML с конфигурацией XML, и он отлично работал прямо из коробки.

person JavaHead    schedule 21.02.2018
comment
Не могли бы вы предоставить рабочую конфигурацию Spring, которая подойдет вам? У меня проблема с получением ответа SAML на мой веб-сервер. - person kmualem; 26.04.2018
comment
Кмуалем. К сожалению, я не могу вставить фактическую конфигурацию, но для меня конфигурация XML прямо из коробки работала прекрасно. Я использовал это: github.com/spring-projects/spring-security-saml/blob/develop/ - person JavaHead; 26.04.2018

Я исправил эту проблему через 5 дней после определения источника проблемы, установив срок действия (срок действия) файлов cookie таким же, как срок действия сеанса. Похоже, что файл cookie с идентификатором (для меня это был JSESSIONID, так как я работал с tomcat)

Для моей ситуации в tomcat я установил это:

<session-config>
    <session-timeout>60</session-timeout>
    <cookie-config>
        <http-only>true</http-only>
        <secure>true</secure>
        <max-age>3600</max-age>
    </cookie-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>

Теперь после завершения сеанса cookie также будет удален. Обеспечение возможности повторной аутентификации с новым файлом cookie.

person Elhoussine Zennati    schedule 27.12.2018