在csrfFilter中初始化requireCsrfProtectionMatcher的依据是什么
On what basis requireCsrfProtectionMatcher is initialised in csrfFilter
CsrfFilter 有验证
if (!this.requireCsrfProtectionMatcher.matches(request)) {
filterChain.doFilter(request, response);
return;
}
在上面的代码片段中,this.requireCsrfProtectionMatcher 正在初始化为 AndRequestMatcher。但我只想使用 DefaultRequiresCsrfMatcher。任何人都可以提供有关此的更多信息吗?
我的安全配置
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().and().
cors().and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/rest/open/**").permitAll()
.and().authorizeRequests()
.antMatchers("/**").authenticated()
.anyRequest().permitAll()
.and()
.oauth2ResourceServer()
.jwt()
.jwtAuthenticationConverter(getJwtAuthoritiesConverter());
}
requireCsrfProtectionMatcher
正在用 AndRequestMatcher
初始化,因为您正在使用 oauth2ResourceServer().jwt()
。
oauth2ResourceServer
DSL 告诉 CsrfFilter
忽略包含 Bearer
令牌的请求。您可以在 source code.
中查看
由于 JWT 身份验证是无状态的,因此您不需要在请求中使用 CSRF 令牌。
CsrfFilter 有验证
if (!this.requireCsrfProtectionMatcher.matches(request)) {
filterChain.doFilter(request, response);
return;
}
在上面的代码片段中,this.requireCsrfProtectionMatcher 正在初始化为 AndRequestMatcher。但我只想使用 DefaultRequiresCsrfMatcher。任何人都可以提供有关此的更多信息吗? 我的安全配置
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().and().
cors().and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/rest/open/**").permitAll()
.and().authorizeRequests()
.antMatchers("/**").authenticated()
.anyRequest().permitAll()
.and()
.oauth2ResourceServer()
.jwt()
.jwtAuthenticationConverter(getJwtAuthoritiesConverter());
}
requireCsrfProtectionMatcher
正在用 AndRequestMatcher
初始化,因为您正在使用 oauth2ResourceServer().jwt()
。
oauth2ResourceServer
DSL 告诉 CsrfFilter
忽略包含 Bearer
令牌的请求。您可以在 source code.
由于 JWT 身份验证是无状态的,因此您不需要在请求中使用 CSRF 令牌。