Spring Security: OauthResourceServer + CSRF - PullRequest
       56

Spring Security: OauthResourceServer + CSRF

0 голосов
/ 27 апреля 2020

У нас есть проблема с нашей текущей настройкой: мы перенесли нашу конфигурацию безопасности spring oauth 2 в последнюю конфигурацию безопасности spring. (https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide)

С тех пор наша конфигурация сервера ресурсов csrf больше не работает.

В этот момент https://github.com/spring-projects/spring-security/blob/master/web/src/main/java/org/springframework/security/web/csrf/CsrfFilter.java#L116 фильтр должен проверить, требует ли запрос защиты от CSRF.

requestMatchers содержит два RequestMatcher:

https://github.com/spring-projects/spring-security/blob/master/config/src/main/java/org/springframework/security/config/annotation/web/configurers/CsrfConfigurer.java#L83 и игнорируется https://github.com/spring-projects/spring-security/blob/master/config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurer.java#L498, так как метод ** init * отрицает (пытается игнорировать аутентификацию) https://github.com/spring-projects/spring-security/blob/master/config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurer.java#L459.

Проблема заключается в следующем: он не работает. Как только мы пытаемся получить доступ к защищенному ресурсу (где требуется аутентификация), CsrfFilter больше не работает. Первый сопоставитель запросов в CsrfFilter применяется, но второй, который проверяет, что аутентификация недоступна, терпит неудачу и поэтому делает невозможным применение безопасности csrf к защищенным ресурсам.

Мы полностью отладили его и не можем найти ни нашу ошибку, ни как мы можем это исправить.

...