Я пишу сервер авторизации oauth2, который должен поддерживать два типа аутентификаций.
- Аутентификация с использованием имени пользователя и пароля (предоставление пароля) с фиксированным
clientId
- Аутентификация с предварительно зарегистрированным приложением, где
cliendId
и clientSecret
хранятся в базе данных
Моя конфигурация выглядит следующим образом.
@Override
public void configure(ClientDetailsServiceConfigurer configurer) throws Exception {
configurer
// registered apps
.withClientDetails(appClientDetailsService)
// user auth
.and().inMemory()
.withClient(clientId)
.secret(clientSecret)
.authorizedGrantTypes(grantType)
.scopes(scopeRead, scopeWrite)
.resourceIds(resourceIds);
}
Оба работают самостоятельно, но если я их объединяю (and()
), я получаю ошибку:
IllegalStateException: securityBuilder cannot be null
Можно ли использовать ClientDetailsService
и жестко inMemory
клиент или мне нужно добавить UserAuthClient в базу данных?
спасибо