在使用自定义登录页面尝试登录 SpringBoot 应用程序时,Web 应用程序会自动从 HTTPS 切换到 HTTP。我想同时允许,但如果 HTTPS 已经存在,它不应该自动切换出来。请在此处查看 Chrome 日志:
-- 一般
- 请求网址:https://example.com/login
- 请求方法:POST
- 状态代码:302
-- 响应 header :
我正在使用 WebSecurityConfigurerAdapter,我的配置(HttpSecurity http):
http.authorizeRequests().antMatchers("/version*").permitAll().anyRequest().authenticated()
.and().formLogin().loginPage("/login").permitAll().and().logout().permitAll();
我的/login 页面非常简单:
<form method="post" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
<input type="text" name="username">
<input type="password" name="password">
<input id="signInBtn" type="submit" value="Sign In">
</form>
有人知道如何修复配置吗?
最佳答案
我能够使用以下 spring 配置解决此问题:
security.require-ssl=true
尽管 Spring Boot 应用程序在端口 8080 上运行,它仍会强制使用 HTTPS。
关于java - Spring Boot 登录重定向 302 丢失 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48160992/