Почему Spring Security 5 не будет перенаправлять обратно на защищенный ресурс после входа в систему? - PullRequest
0 голосов
/ 05 мая 2019

После обновления нашего сервера аутентификации с Spring Boot 1.5.13 до 2.1.3 он прекратил перенаправление после успешного входа в систему. Он пытается перезагрузить страницу / login сейчас. Я создал веб-сайт, прокси-сервер и службу аутентификации в GitHub, чтобы продемонстрировать проблему.

Для этого интеграционного теста создайте пространство PCF, которое включает реестр служб и следующие микро-службы:

  • Пример Angular - Если вы обойдете прокси и перейдете к примеру Angular, проложите страницу загрузки. ПОПРОБУЙТЕ .
  • Пример аутентификации - Если вы обойдете прокси-сервер и перейдете в корневой каталог сервера аутентификации, вы сможете войти в систему и получить доступ к защищенной странице. ПОПРОБУЙТЕ
  • Пример прокси Zuul - Если вы попытаетесь получить доступ к угловому примеру через прокси, то вы не не попадут на угловой пример после входа в систему. ПОПРОБУЙТЕ ЕГО

Если вы пытаетесь получить доступ к корневому каталогу сервера аутентификации ¨ / ¨, защищенная страница загружается нормально, и модульные тесты работают нормально.

Вот конфигурация сервера аутентификации.

  protected void configure(HttpSecurity http) throws Exception {

    // @formatter:off
    http
        .requestMatchers()
            .antMatchers("/", "/login", "/oauth/authorize", "/oauth/confirm_access")
            .and()
        .authorizeRequests()
            .anyRequest().authenticated()
            .and()
        .formLogin()
            .loginPage("/login")
            .permitAll()
            .and()
        .logout()
            .permitAll();
    // @formatter:on
  }

}

Вот весь код для всех проектов:

Ожидаемый результат

  1. Пользователь пытается получить доступ к сайту Angular через прокси-сервер с поддержкой единого входа.
  2. Spring Security на прокси-сервере перенаправляет браузер пользователя на страницу входа в систему на сервере аутентификации.
  3. Пользователь входит и отправляет форму входа на сервер аутентификации.
  4. Сервер аутентификации создает токен JWT oauth2 и перенаправляет пользователя на первоначально запрошенный сайт Angular.

Фактические результаты

Сервер аутентификации перенаправляет пользователя обратно на страницу входа в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...