我在gcp应用程序引擎上运行了一个相当简单的spring引导应用程序。
我启用了springsecurity来获取api端点上的默认安全响应头。
现在,当我将应用程序部署到应用程序引擎中时,除了hst之外,我有了所有默认的头文件。
我创建了一个自签名证书在本地测试应用程序,它返回了hsts头,没有问题。但是当我将应用程序部署到应用程序引擎中时,所有的头文件hsts都丢失了。
下面是app.yaml:(其中我将所有http请求重定向到https,并通过配置尝试了应用程序级别的http到https重定向,但没有不同)
runtime: java11
instance_class: F4
handlers:
- url: /.*
script: auto
secure: always
redirect_http_response_code: 301
下面是websecurityconfig文件:(我知道这里不需要显式配置hsts来获得默认值,但是有没有它都不起作用)
@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.headers().httpStrictTransportSecurity()
.maxAgeInSeconds(31536000)
.includeSubDomains(true);
}
}
主要内容如下:
@RestController
@SpringBootApplication
public class XXXApplication {
public static void main(String[] args) {
SpringApplication.run(XXXApplication.class, args);
}
@GetMapping("/")
public ModelAndView suspended(@RequestParam(required = false, defaultValue = "This") String name) {
/// some stuff ...
}
}
我知道,唯一的方法是通过appengine和app.yaml设置hsts头是当你想提供静态内容,这不是我的情况。
有人能帮我吗?我不知道我错过了什么,为什么hsts是唯一的标题,我没有得到响应后部署到应用程序引擎?
暂无答案!
目前还没有任何答案,快来回答吧!