Spring security requireSecure loop redoop - PullRequest
       2

Spring security requireSecure loop redoop

0 голосов
/ 11 октября 2019

Метод выхода по умолчанию, с приведенной ниже конфигурацией, перенаправляет на URL-адрес HTTP. когда я добавляю .requiresChannel().anyRequest().requiresSecure(), он входит в цикл перенаправления. Насколько я понимаю, это потому, что Spring отправляет HTTPS-запрос, tomcat превращает его в http-запрос, а затем Spring снова пытается выполнить https-запрос, и это зацикливание? Точно сказать не могу. Этот цикл происходит по корневому URL.

Я пытался добавить

server.tomcat.remote-ip-header = x-forwarded-for
server.tomcat.protocol-header = x-forwarded-proto
server.use-forward-headers: true

в файл свойств, но это не имело никакого эффекта.

httpSecurity
    .csrf().disable()
    .anonymous()
        .and()
    .exceptionHandling()
        .authenticationEntryPoint(new OowAccessDeniedEntryPoint())
        .and()
    .authorizeRequests()
        .antMatchers(ignoreStaticResourceMatchers()).permitAll()
        .antMatchers(ignoreEndpointMatchers()).permitAll()
        .anyRequest().authenticated()
        .and()
    .oauth2Login()
        .and()
    .rememberMe()
        .key(key)
        .rememberMeServices(new OowTokenBasedRememberMeServices(key, cookies, encrypt, gson))
        .and()
    .logout()

В настоящее время планируется сделать обходной путь кэта проблема, но я немного удивлен тем, что не нашел решения этой проблемы после 6 часов работы в Интернете.

1 Ответ

0 голосов
/ 29 октября 2019

Обходной путь был

static class OowLogoutSuccessHandler implements LogoutSuccessHandler {
    @Override
    public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
        log.debug("Logout success"); 
    }
}

Но я чувствую, что приведенный ниже код решил проблему.

(1) application.yml

server:
  use-forward-headers: true

(2) всерверов /etc/apache2/sites-enabled/oow.com-le-ssl.conf

RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443

(2.1) и включил модуль apache с помощью

sudo a2enmod headers

Соедините его с помощью this и this

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