Как отключить Spring Security Filters

У меня возникла ситуация, когда у меня есть служба RESTful, использующая токен с предварительной аутентификацией для аутентификации. Я реализовал свой собственный фильтр preAuth, и он отлично работает. Моя проблема в том, что некоторые запросы, отправленные на мой сервис, включают BasicAuthorization, который не относится к моему приложению. (Я хотел бы, чтобы они этого не сделали, и не должны, но они делают, и я не могу это контролировать.)

Теперь кажется, что Spring Security автоматически создает фильтр BasicAuthorization, но этот фильтр перехватывает эти неактуальные заголовки аутентификации, а затем выдает ошибку:

Error 401 No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken

Поэтому я хочу отключить фильтры, которые я не использую в Spring Security, но я не могу понять, как это сделать. Я знаю, что мог бы создать фиктивные фильтры и заменить автофильтры, или я мог бы просто удалить все основные заголовки Auth, прежде чем приложение войдет в цепочку фильтров, но оба они кажутся хаки.

Когда я посмотрел документацию по фильтру безопасности Spring, я обнаружил часть, в которой показано, как добавить FilterChainProxy, но мне кажется, что мне приходится вручную создавать все компоненты для безопасности Spring таким образом. В частности, я попал в ту часть, где вам нужен AccessDecisionManager, но я подумал, что это то, что мой

<http use-expressions="true" create-session="stateless"
        authentication-manager-ref="authenticationManager">

        <intercept-url pattern=[etc ...]

материал был для, и я все еще хочу использовать это. У кого-нибудь есть предложения?

1 ответ

Решение

После некоторого изучения выясняется, что мой пример был неполным. Я использовал пружинную защиту baeldung с сервисным руководством REST и по глупости включил <http-basic /> От этого. Так что... извините за плохой вопрос.

Другие вопросы по тегам