У меня есть служба ресурсов за маршрутом 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?