У меня есть сервер авторизации на основе 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. Я искал документацию безопасности весной, но не смог найти то, что я ищу. Заранее благодарю за любую помощь.