Как вручную изменить провайдера аутентификации в Spring Security - PullRequest
0 голосов
/ 20 сентября 2018

Поставщик аутентификации установлен в

@Override
    public void configure(AuthenticationManagerBuilder auth) {
        auth.authenticationProvider(authenticationProvider);
    }

Можно ли изменить поставщика аутентификации во время выполнения в SpringBoot?

1 Ответ

0 голосов
/ 21 сентября 2018

Экземпляр сконфигурированного AuthenticationManager в конечном итоге будет передан одной из реализаций org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.Этот базовый класс фильтра имеет установщик для AuthenticationManager, так что да, по сути, вы можете заменить AuthenticationManager во время выполнения при условии, что у вас есть доступ к настроенному фильтру аутентификации.

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

В зависимости от ваших потребностей я бы предложил предоставить пользовательскую реализацию AuthenticationManager, которая изменяет свою логику в соответствии с некоторыми условиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...