Spring Boot https重定向

时间:2017-10-03 21:29:20

标签: spring amazon-web-services spring-mvc

我将一个Spring Boot Web应用程序部署到AWS并为域配置了SSL证书。每次我点击一个映射到的登录按钮:

@RequestMapping("/login")
public String login(){
   return "login";
}

我被重定向到https登录页面。但是,当用户尝试访问需要授权的页面时,会将其重定向到不安全的http登录页面。 我的Spring Security如下所示:

http
.authorizeRequests()
.antMatchers(HttpMethod.GET,"/","/css/**","/images/**","/js/**").permitAll()
.antMatchers("/").permitAll()
.antMatchers("/index").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.deleteCookies("remember-me")
.logoutSuccessUrl("/login?logout")
.permitAll();

以下是实例:test4test.io

1 个答案:

答案 0 :(得分:0)

假设连接在到达应用程序之前是安全的,则必须在安全性配置中添加以下内容,以确保所有请求的安全。

http.requiresChannel().anyRequest().requiresSecure();

如果tls终止于负载均衡器(这可能不理想,但有情况),则可能无法正常工作。在这种情况下,可以在aws alb / nlb中将侦听器添加到端口80上,该侦听器可以重定向到端口443。由于在应用程序获得请求之前从负载均衡器进行重定向,因此这不需要对应用程序进行任何更改。