gpt4 book ai didi

spring - 重定向到 HTTPS 失败 Spring Security

转载 作者:行者123 更新时间:2023-12-01 22:33:18 27 4
gpt4 key购买 nike

我进行了以下安全设置:

@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**", "/registration/**").access("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')")
.anyRequest().permitAll()
.and()
.requiresChannel().anyRequest().requiresSecure()
.and()
.exceptionHandling().accessDeniedPage("/denied")
.and()
.formLogin()
.loginPage("/login")
.failureUrl("/error-login");
}

现在的问题是当我尝试打开 demo.com 或 http://demo.com 时将其部署在生产服务器上或这些的组合,我得到太多重定向并且失败。

在 Chrome 上:ERR_TOO_MANY_REDIRECTS

在 Firefox 上:页面未正确重定向

换句话说,它会重定向直到失败。

关于这里可能出什么问题或者我可以做些什么来解决问题有什么建议吗?

编辑1:

Controller 请求

@Controller
public class BaseController {

@RequestMapping(value = {"/", "/index"})
public String home() {
return "index";
}
}

日志:没有条目(标准启动顺序除外)

最佳答案

您必须在 WebSecurityConfigurer 中指定端口映射与应用程序相应的 HTTP 和 HTTPS 端口:

    @Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**", "/registration/**").access("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')")
.anyRequest().permitAll()
.and()
.requiresChannel().anyRequest().requiresSecure()
.and()
.portMapper()
.http(8080).mapsTo(8443);
.and()
.exceptionHandling().accessDeniedPage("/denied")
.and()
.formLogin()
.loginPage("/login")
.failureUrl("/error-login");
}

http.portMapper().http(8080).mapsTo(8443) 将 HTTP 8080 端口映射到 HTTPS 8443 端口以正确执行重定向。

了解更多:

关于spring - 重定向到 HTTPS 失败 Spring Security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37906833/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com