【问题标题】:Spring Cloud Gateway POST ForbiddenSpring Cloud Gateway POST 被禁止
【发布时间】:2020-07-13 06:16:21
【问题描述】:

我在 Cloud Gateway 路由后面有一个资源服务,带有 RelayToken 过滤器:

      routes:
        - id: apis
          uri: http://rest-app:8080/apis
          predicates:
            - Path=/apis/**
          filters:
            - TokenRelay=

GET 请求工作正常,但在 POST 上我得到 403 Forbidden 响应正文包含 CSRF Token has been associated to this client 我试图禁用 CSRF 保护添加 Bean

@Bean
fun springWebFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain {
    return http.csrf().disable().cors().disable().build()
}

但这没有任何效果,我仍然得到 403。此外,我无法调试哪个过滤器阻止客户端执行 POST 请求,这是我获得的唯一日志信息

logging:
  level:
    root: INFO
    org.springframework.web: TRACE
    org.springframework.security: TRACE
    org.springframework.security.oauth2: TRACE
    org.springframework.cloud.gateway: TRACE
    org.springframework.security.jwt: TRACE

只有几行说 POST 被禁止

[2020-04-01 13:21:32,635] TRACE o.s.w.s.a.HttpWebHandlerAdapter  - [58a0e540-10] HTTP POST "/apis/", headers={masked} 
[2020-04-01 13:21:32,640] TRACE o.s.w.s.a.HttpWebHandlerAdapter  - [58a0e540-10] Completed 403 FORBIDDEN, headers={masked} 
[2020-04-01 13:21:32,640] TRACE o.s.h.s.r.ReactorHttpHandlerAdapter  - [58a0e540-10] Handling completed 

如何正确关闭 CSRF?

【问题讨论】:

    标签: spring-security cross-domain csrf spring-cloud-gateway


    【解决方案1】:

    解决了我的问题的正确 SecurityWebFilterChain:

    @Bean
    fun springWebFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain {
        return http
            .authorizeExchange().anyExchange().authenticated()
            .and()
            .oauth2Login()
            .and()
            .csrf().disable()
            .build()
    }
    

    【讨论】:

    • 我面临同样的问题。我的网关不会登录,但会期望消费者在请求中发送 Bearer jwt 令牌。 http.csrf.disable() 在 eclipse (http) 中为我工作,但是当在 ocp4/docker (https) 中部署相同的应用程序时,它的解决方案不起作用。
    • 嗨@DDD:你找到解决这个问题的方法了吗?
    猜你喜欢
    • 2019-10-29
    • 2014-07-04
    • 2020-09-06
    • 2019-05-20
    • 2021-07-23
    • 2019-04-01
    • 1970-01-01
    • 2021-10-20
    • 2021-10-03
    相关资源
    最近更新 更多