首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Cloud Gateway POST禁用

Spring Cloud Gateway POST禁用
EN

Stack Overflow用户
提问于 2020-04-01 21:23:14
回答 1查看 3.6K关注 0票数 2

我有一个带RelayToken过滤器的云网关路由后面的资源服务:

代码语言:javascript
复制
      routes:
        - id: apis
          uri: http://rest-app:8080/apis
          predicates:
            - Path=/apis/**
          filters:
            - TokenRelay=

GET请求可以很好地工作,但在帖子中,我得到了包含CSRF Token has been associated to this client的响应主体,我尝试禁用CSRF保护,添加了Bean

代码语言:javascript
复制
@Bean
fun springWebFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain {
    return http.csrf().disable().cors().disable().build()
}

但这没有效果,我仍然得到403。此外,我不能调试确切的过滤器阻止客户端执行POST请求,这是我获得的唯一日志记录信息

代码语言:javascript
复制
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是禁止的

代码语言:javascript
复制
[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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-01 21:58:26

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

代码语言:javascript
复制
@Bean
fun springWebFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain {
    return http
        .authorizeExchange().anyExchange().authenticated()
        .and()
        .oauth2Login()
        .and()
        .csrf().disable()
        .build()
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60971877

复制
相关文章

相似问题

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