Spring Boot Application Spring security OAuth2 и OpenId connect Как поддерживать и аутентифицировать два набора пользователя - PullRequest
0 голосов
/ 02 марта 2020

У меня есть сервер авторизации на основе Spring Security 5.2 для аутентификации пользователей с использованием их учетной записи Facebook (OAuth2) или Google (openId Connect) и регистрации (пользователя) в локальной базе данных (таблица пользователей) перед генерацией токена настраиваемого доступа ( на основании местных требований) и токен refre sh. Появляется новое требование для поддержки нового типа пользователя: Клиент со своим собственным пользователем. служба авторизации уже реализует два класса для обработки пользователя:

public class CustomOAuth2UserService extends DefaultOAuth2UserService {
    private UserRepository userRepository;
    public CustomOAuth2UserService(UserRepository userRepository){
        this.userRepository = userRepository;
    }
}

для сохранения, если оно не существует, или загрузки пользователя из пользователей с данными на основе аутентификации facebook. И

public class CustomOidcUserService extends OidcUserService {
    private UserRepository userRepository;

    public CustomOidcUserService(UserRepository userRepository){
        this.userRepository = userRepository;
    }

    @Override
    public OidcUser loadUser(OidcUserRequest userRequest) throws OAuth2AuthenticationException {

    }

}

для сохранения или загрузить пользователя на основе аутентификации Google, как описано в документации по безопасности Spring. Я пытаюсь поддержать новый тип пользователя (с его таблицей Customer) и добавить новый CustomerRepository к обеим вышеупомянутым службам и обработать аутентификацию нового типа клиента с другим dataTable. Мой вопрос: что я могу сделать, чтобы CustomOAuth2UserService и CustomOidcUserService поддерживали UserRepository и CustomerRepository. Я искал документацию безопасности весной, но не смог найти то, что я ищу. Заранее благодарю за любую помощь.

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