Spring security 删除spring oauth2令牌API中的HTTP严格传输安全(HSTS)响应头

Spring security 删除spring oauth2令牌API中的HTTP严格传输安全(HSTS)响应头,spring-security,spring-oauth2,hsts,Spring Security,Spring Oauth2,Hsts,我在API项目中使用Spring安全性、Spring Oauth2和JWT Spring oauth 2提供的登录的默认API是/oauth/token 此API始终在响应中添加“严格传输安全性:最大年龄=31536000;includeSubDomains”标题。 但在我的情况下我不想这样。我已经用下面的源代码删除了HST @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter

我在API项目中使用Spring安全性、Spring Oauth2和JWT
Spring oauth 2提供的登录的默认API是/oauth/token

此API始终在响应中添加“严格传输安全性:最大年龄=31536000;includeSubDomains”标题。 但在我的情况下我不想这样。我已经用下面的源代码删除了HST

@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        // ...
        .headers()
            .httpStrictTransportSecurity().disable();
    }
}
在上面的代码中,我定义的API将从头中的HST中删除。但是默认的API/oauth/token仍然在头中返回HST。 有没有办法做到这一点? 请帮忙

谢谢,
Tin

我刚刚遇到了同样的问题。 我发现最好的解决方案是编写一个过滤器,防止其他人设置HSTS标题

@组件
@顺序(值=顺序。最高优先级)
公共类HstsHeaderPreventionFilter实现过滤器{
@凌驾
public void init(FilterConfig FilterConfig)抛出ServletException{
}
@凌驾
public void doFilter(ServletRequest请求、ServletResponse响应、FilterChain链)抛出IOException、ServletException{
doFilter(请求,新的HttpServletResponseWrapper((HttpServletResponse)响应){
public void setHeader(字符串名称、字符串值){
if(!name.equalsIgnoreCase(“严格传输安全”)){
super.setHeader(名称、值);
}
}
});
}
@凌驾
公共空间销毁(){
}
}