Отговорът е прост както винаги:
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints
.tokenGranter(new CompositeTokenGranter(
Arrays.asList(resourceOwnerPasswordTokenGranter(), clientCredentialsTokenGranter())))
.authenticationManager(providerManager())
.clientDetailsService(clientDetailsService())
.tokenServices(defaultTokenServices());
}
private TokenGranter resourceOwnerPasswordTokenGranter() {
return new ResourceOwnerPasswordTokenGranter(
new ProviderManager(Arrays.asList(authenticationProvider())),
defaultTokenServices(),
clientDetailsService(),
defaultOAuth2RequestFactory());
}
private TokenGranter clientCredentialsTokenGranter() {
return new ClientCredentialsTokenGranter(
defaultTokenServices(),
clientDetailsService(),
defaultOAuth2RequestFactory());
}
Добавих нов CompositeTokenGranter със списък от 2 предоставящи лица: ResourceOwnerPassswordTokenGranter (за удостоверяване чрез clientId+clientPassword+потребителско име+парола) и ClientCredentialsTokenGranter (за удостоверяване чрез clientId+clientPassword).
РЕДАКТИРАНЕ
Изглежда, че въпросът ми е неправилен. Съжалявам за това. Направих тези промени за сървъра за оторизация. Така че работи само за /oauth/токен. Как да коригирам проблема с въпроса Засега нямам идея, но ще актуализирам този въпрос, когато намеря решение.
person
Alex
schedule
11.11.2014