为什么spring security hsts头文件会被appengine删除?

mctunoxg  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(255)

我在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是唯一的标题,我没有得到响应后部署到应用程序引擎?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题