2015-04-15 3 views
1

С this reference к клиенту документы Spring oauth2:Spring Security oauth2 - Добавление учетных данных в AccessTokenRequest

и в следующем разделе:

Если desparately нужны гранты пароль для работы с клиентом Java, то используйте тот же механизм для настройки OAuth2RestTemplate и добавьте учетные данные в AccessTokenRequest (который является Map и является эфемерным), а не ResourceOwnerPasswordResourceDetails (который разделяется между всеми токенами доступа).

Как можно добавить учетные данные в AccessTokenRequest? Или, как правило, как я могу получить ссылку на AccessTokenRequest или OAuth2ClientContext для конкретного пользователя запроса.

Причина, по которой я нуждаюсь в этом, заключается в том, чтобы избежать исключения UserRedirectRequiredException и требования о перенаправлении на URL авторизации, поскольку в API доступа, к которому я обращаюсь, нет страницы входа в систему, а просто для входа в систему.

Предположительно, OAuth2ClientContextFilter должен хранить текущий запрос и контекст, но я не вижу, как это сделать.

+0

Ok, сеанс атрибут scopedTarget.oauth2ClientContext имеет контекст клиента – Stephen

ответ

1

Доступ к AccessTokenRequest:

@Autowired 
OAuth2RestTemplate restTemplate; 

public void doSomething() { 
    AccessTokenRequest request = 
    restTemplate.getOAuth2ClientContext().getAccessTokenRequest(); 
    ... 
}