Как вызвать мой микросервис аутентификации в другом микросервисе при весенней загрузке безопасности - PullRequest
0 голосов
/ 04 марта 2020

Я реализовал сервис аутентификации с использованием Spring Security, который имеет доступ к базе данных, в которой хранятся пользовательские данные. Теперь я хочу реализовать другой сервис (открыть совершенно новый проект), в котором я указываю только URL своего сервиса аутентификации. Я использовал .loginProcessingUrl() и изменил страницу входа в весенней конфигурации безопасности, но это не работает. Как сделать так, чтобы новый сервис проходил аутентификацию, используя мой сервис аутентификации?

1 Ответ

0 голосов
/ 04 марта 2020

Вы можете использовать пользовательский AuthenticationProvider для аутентификации за вас.

Вот простой пример:

  1. Создайте CustomRemoteAuthenticationProvider, который вызывает вашу службу аутентификации:
public class CustomRemoteAuthenticationProvider implements AuthenticationProvider {

    @Override
    public Authentication authenticate(Authentication authentication) 
               throws AuthenticationException {

        String username = authentication.getName();
        String password = authentication.getCredentials().toString();

        // call your authentication service
        // ... and return a UsernamePasswordAuthenticationToken

    }

    @Override
    public boolean supports(Class<?> authentication) {
        return authentication.equals(UsernamePasswordAuthenticationToken.class);
    }
}
Объявите ваш CustomRemoteAuthenticationProvider как боб (что вы можете сделать в WebSecurityConfigurerAdapter), который будет автоматически выбран и добавлен к AuthenticationManager:
@Bean
public CustomRemoteAuthenticationProvider customRemoteAuthenticationProvider() {
    return new CustomRemoteAuthenticationProvider();
}

Примечание : Вы можете сделать все это за один шаг, добавив @Component непосредственно к CustomRemoteAuthenticationProvider. Также, проверьте javado c для AuthenticationProvider для списка AuthenticationProvider s, если вы хотите больше идей о том, как написать один. DaoAuthenticationProvider обычно используется с JdbcDaoImpl для аутентификации в базе данных.

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