У меня есть одно приложение для загрузки весны, которое содержит весеннюю безопасность с добавлением formLogin и пользовательской учетной записи. Всякий раз, когда я получаю аутентификацию, он отправляет меня на defaultSuccessUrl, который является/app/dashboard, и отправляет с помощью схемы http. Я пробовал весь день, чтобы просто сделать схему successUrl https, просто изменив некоторые изменения в application.properties и иногда с Bean, но я до сих пор не могу этого сделать. Мое приложение находится в cloudfoundry, и у меня нет порта 80, но только 443 (https).Принудительное подключение Https во время весеннего входа в систему безопасности для входа в систему
Моя конфигурация весной, как это:
http
.authorizeRequests()
.antMatchers("/", "/forbidden", "/index.html", "/webjars/*", "/app.js", "/access/*", "/signup", "/l10n/*.js", "/", "/tpl/**/*.html", "/fonts/**/*.woff").permitAll()
.anyRequest().authenticated()
.and().addFilterAfter(new CsrfHeaderFilter(), CsrfFilter.class).
csrf().csrfTokenRepository(repo)
.and() .httpBasic().disable()
.formLogin()
.loginPage("/access/signin").permitAll()
.failureUrl("/error")
.defaultSuccessUrl("/app/dashboard")
.and().logout()
.logoutRequestMatcher(new AntPathRequestMatcher("access/logout"))
.logoutSuccessUrl("/access/signin").permitAll();
Я также пытался использовать абсолютный URL с HTTPS, но он не работает хорошо.
На самом деле я использую predix, который является еще одной версией облачного литейного производства. Я применил приложение весенней загрузки с requireChannel(). AnyRequest(). RequireSecure(), но у него есть _redirect loops_. После перемещения глубоко в журнал я увидел, что мой кот порт работает в ** 64143 ** 'Запуск Servlet Engine: Apache Tomcat/8.0.32'
' Начиная ProtocolHandler [ "HTTP-NiO-64143"] '' Используя общий селектор для сервлета записи/read' 'Tomcat начал порт (ы): 64143 (HTTP)' ' Обновление порта для 64143' это означает, что cloudfoundry является отображение HTTPS к ** 64143 ** порт. – privatejava
Если вы не предоставите «http.portMapper», тогда «requireSecure()» будет использовать по умолчанию настроенный порт https. Поэтому, если tomcat работает на 8080, то с помощью requireSecure() он будет использовать порт 8443 для https. Проверьте, какая конфигурация (с или без portMapper) работает для вас. – abaghel
Даже добавление portmapper() не помогло. Весенняя загрузка позади прокси, я думаю, потому что даже он работает в другом порту, он отображает из одного облачного uri с защищенным https. 'https: // ====>: ' –
privatejava