SpringSecurity - RequestHeaderRequestMatcher

时间:2017-10-02 13:02:42

标签: spring spring-boot spring-security

我想配置我的网络应用程序,拒绝所有没有正确"内容类型"的请求。例如:除了" application / json"之外的任何内容类型。应该被拒绝。

目前我通过自定义过滤器进行此操作,但我想知道如何通过" RequestHeaderRequestMatcher"在安全配置中直接?

允许'采用以下示例安全配置:

我应该如何添加新的请求匹配器以检查所有有效内容类型的请求?

2 个答案:

答案 0 :(得分:0)

您可以查看此文档CORS,此答案可以帮助您https://stackoverflow.com/a/43559288/5429215

答案 1 :(得分:0)

可以使用RequestHeaderRequestMatcher来验证请求是否包含某个标头。此外,还可以进行更精确的测试以测试某个值。

在以下情况中,所有请求都必须包含Accept - 标头,其值为application/json。否则返回HTTP状态406

@Configuration
class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatcher(new RequestHeaderRequestMatcher("Accept", "application/json"));
    }
}