gpt4 book ai didi

spring-security - 在 Spring Weblux 中禁用给定路径的身份验证和 csrf?

转载 作者:行者123 更新时间:2023-12-02 13:36:50 25 4
gpt4 key购买 nike

我想为除一个 url 之外的整个应用程序启用 oauth2。

我的配置:

@EnableWebFluxSecurity
class SecurityConfig {

@Bean
fun securityWebFilterChain(http: ServerHttpSecurity) =
http
.authorizeExchange()
.pathMatchers("/devices/**/register").permitAll()
.and()
.oauth2Login().and()
.build()
}

application.yml:

spring.security.oauth2.client.registration.google.client-id: ...
spring.security.oauth2.client.registration.google.client-secret: ...

所有路径都受到 oauth2 保护,但问题是,当我调用允许 /devices/123/register 的端点时,我得到的响应是:

CSRF token 已与此客户端关联

我需要以不同的方式配置此路径吗?

最佳答案

permitAll 是一个仅关于权限的声明 - 所有典型的 Web 应用程序漏洞仍然受到缓解,例如 XSS 和 CSRF。

如果您试图指示 Spring Security 应该完全忽略 /devices/**/register ,那么您可以这样做:

http
.securityMatcher(new NegatedServerWebExchangeMatcher(
pathMatchers("/devices/**/register")))
... omit the permitAll statement

但是,如果您仍然希望该端点获取安全响应 header ,而不是 CSRF 保护,那么您可以这样做:

http
.csrf()
.requireCsrfProtectionMatcher(new NegatedServerWebExchangeMatcher(
pathMatchers("/devices/**/register")))
... keep the permitAll statement

关于spring-security - 在 Spring Weblux 中禁用给定路径的身份验证和 csrf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54408961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com