当前位置: 首页 > 知识库问答 >
问题:

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

幸乐湛
2023-03-14

我在API项目中使用Spring Security和Spring Oauth2和JWT,为了登录Spring Oauth2提供的默认API是/oauth/token

此API总是在响应中添加“Strict-Transport-Security: max-age=31536000;包含子域”标头。但我不希望在我的情况下这样。并且我已经使用以下源代码删除了HSTS。

@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        // ...
        .headers()
            .httpStrictTransportSecurity().disable();
    }
}

在上面的代码中,我定义的API在头中被删除了HSTS。但是默认的API /oauth/token仍然在头中返回HSTS。有什么方法可以做到这一点吗?请帮助。

谢谢Tin

共有1个答案

闾丘京
2023-03-14

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

java prettyprint-override">@Component
@Order(value = Ordered.HIGHEST_PRECEDENCE)
public class HstsHeaderPreventionFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        chain.doFilter(request, new HttpServletResponseWrapper((HttpServletResponse) response) {
            public void setHeader(String name, String value) {
                if (!name.equalsIgnoreCase("Strict-Transport-Security")) {
                    super.setHeader(name, value);
                }
            }
        });
    }

    @Override
    public void destroy() {

    }

}
 类似资料:
  • 我想为我的网站将超文本传输协议请求转换为https。我已经获得了SSL证书,但可能有机会绕过我的应用程序启用的加密,并且在获得证书后,我的应用程序无法阻止通过不安全的连接访问

  • 综述 HTTP严格传输安全(HTTP Strict Transport Security, HSTS)头是一项机制:在特定域名下,网站和浏览器之间通信必须都通过https传输。这有助于保护信息从非加密请求中泄露。 考虑这个安全措施的重要意义,测试的关键在于验证网站是否使用这个HTTP头,来确保所有数据都是从浏览器加密传输到服务器端的。 HTTP严格传输安全特征使得web应用能够通过使用特别的响应头

  • 我有一个应用程序,它使用camel-jetty、camel-cxf来公开REST api,并在apache karaf(fuse esb)中运行。由于安全原因,我需要从API响应中删除'server'标头。我从camel exchange头中删除了头,但它仍然以Jetty(7.6.7.v20120910)的形式在api响应中返回。如何从API响应中删除标头?

  • 我想删除MVC中的http响应头。 HTTP/1.1 404找不到缓存-控件:私有内容-类型:text/html;charst=UTF-8服务器:Microsoft-IIS/8.0X-Powered-by:ASP.NET日期:Mon,23 Feb 2015 12:43:58 GMT内容-长度:4898连接:Keep-Alive 我使用以下代码删除连接、X-Powered-By、Server、Cac

  • 问题内容: 我正在使用“使用严格”的函数形式,并且不希望Babel在转换后添加全局形式。问题是我正在使用一些未使用“严格使用”模式的库,并且在连接脚本后可能会引发错误 问题答案: Babel5 你会列入黑名单。例如,这是Gruntfile中的一个示例: Babel6 由于Babel 6现在已完全选择加入插件,而不是将其列入黑名单,因此您无需添加插件。如果您正在使用包含它的预设,那么我认为您必须创建

  • 我正在尝试使用JWT身份验证设置一个简单的Angularjs应用程序。 我给新注册的用户发了一封带有jwt令牌链接的邮件,以验证该邮件是否存在。链接如下所示: < code > http://127 . 0 . 0 . 1:3000/verify email/eyj 0 exaioijkv 1 qilchbgcioijiuzi 1 nij 9 . eyj 1c 2 vytmftzsi 6 injp