首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Spring中添加HTTP“Feature-Policy”头

如何在Spring中添加HTTP“Feature-Policy”头
EN

Stack Overflow用户
提问于 2018-07-19 16:34:10
回答 2查看 2.3K关注 0票数 4

我需要添加HTTP“Feature-Policy”响应头,但我没有找到任何在spring头中实现这一点的方法,比如-

代码语言:javascript
复制
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        // ...
        .headers()
            .contentSecurityPolicy("script-src 'self' https://trustedscripts.example.com; object-src https://trustedplugins.example.com; report-uri /csp-report-endpoint/");
    }

我可以看到规范草案here,但关于在Spring中使用它的内容并不多。任何建议都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2018-09-21 11:39:42

要创建自定义标头,应使用addHeaderWriter并添加StaticHeadersWriter

示例:

代码语言:javascript
复制
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        // ...
        .headers()
            .contentSecurityPolicy("script-src 'self' https://trustedscripts.example.com; object-src https://trustedplugins.example.com; report-uri /csp-report-endpoint/")
            .and()
            .addHeaderWriter(new StaticHeadersWriter("Feature-Policy", "vibrate 'none'; usermedia 'none'"));
    }
}
票数 1
EN

Stack Overflow用户

发布于 2020-12-15 13:12:32

Spring Security在5.1中引入了对Feature-Policy的支持,因此可以将其配置为其他标头:

代码语言:javascript
复制
http
    .headers()
        .featurePolicy("geolocation 'none'");

对于5.2+版本,代码略有不同:

代码语言:javascript
复制
http
    .headers(headers ->
        headers.featurePolicy("geolocation 'none'")
    );

有关详细信息,请参阅文档:

更新: @granty指出Feature-Policy头已重命名为Permissions-Policy。即将发布的Spring Security 5.5.0-M2将支持它。下面是它的外观:

代码语言:javascript
复制
http
    .headers(headers ->
        headers.permissionsPolicy(permissions ->
            permissions.policy("geolocation=(self)")
        )
    );

另请参阅相关的拉取请求:#9265

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51417958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档