Хорошо, поэтому с одним клиентом я могу получить код авторизации, обменять его на токен.Затем запросите ресурсы с помощью токена и успешно получите их.Поэтому я подумал, что попробую второй клиент, и он всегда хочет аутентифицироваться только на первом клиенте ... если вы поможете мне увидеть, что я неправильно настроил, это будет полезно.
Вотсоответствующая конфигурация: из OAuthServer:
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients
.inMemory()
.withClient("clientapp").secret(passwordEncoder.encode("123456"))
.authorizedGrantTypes("password", "client_credentials", "authorization_code", "refresh_token")
.authorities("read")
.scopes("all")
.resourceIds("oauth2-resource")
.redirectUris("http://localhost:9081/login")
.accessTokenValiditySeconds(7200)
.refreshTokenValiditySeconds(240000)
.and()
.withClient("client2").secret(passwordEncoder.encode("789123"))
.authorizedGrantTypes("password", "client_credentials", "authorization_code", "refresh_token")
.authorities("read")
.scopes("all")
.resourceIds("oauth2-resource")
.redirectUris("http://localhost:9081/login")
.accessTokenValiditySeconds(7200)
.refreshTokenValiditySeconds(240000);
}
Вот как я могу получить auth_codes (я могу использовать любого пользователя):
http://localhost:9081/oauth/authorize?client_id=client2&response_type=code&scope=all
Затем, когда у меня есть auth_code, я обмениваю его натокен, использующий приложение Postman
, и я получаю следующий ответ.
И вот что я получаю, когда использую clientapp
вместо client2