2015-07-23 1 views
3

Я следую этому образцу кода от Spring Security OAuth.Весна безопасности OAuth - проверить правильность токена доступа?

После того как я получил маркер доступа при попытке проверить маркер

curl -X POST http://localhost:9999/uaa/oauth/check_token -d "token=e3f44c4f-f8f2-45c4-9f9e-c7dd1f583a1f" 

Я получаю следующее сообщение об ошибке:

{"error":"unauthorized","error_description":"Full authentication is required to access this resource"} 

Я попытался прохождения идентификатор клиента и секрет.

curl -X POST acme:[email protected]:9999/uaa/oauth/check_token -d "token=e3f44c4f-f8f2-45c4-9f9e-c7dd1f583a1f" 

Я получаю статус 403.

{"timestamp":1437683976536,"status":403,"error":"Forbidden","message":"Access is denied","path":"/uaa/oauth/check_token”} 

Я не могу понять, что происходит не так. Любая помощь здесь очень ценится.

+0

Не могли бы вы уточнить, что такое определение '../ UAA/OAuth/check_token'? Я спрашиваю, потому что нет такой стандартной конечной точки. – nKognito

+0

это '/ oauth/check_token', который проверяет токен доступа. '/ uaa /' - это просто contextPath. –

+0

Что именно он делает? Если у вас уже есть токен, почему вы должны его проверить? Если конечная точка 'check_token' уже защищена oauth, тогда вы должны предоставить заголовок аутентификации в своем запросе, а не параметр ... Этот заголовок должен быть:' Аутентификация: Bearer YOUR_TOKEN' – nKognito

ответ

10

Попробуйте сыграть с правами /check_token авторизации через:

public class OAuthSecurityConfig extends AuthorizationServerConfigurerAdapter { 
    @Override 
    public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception { 
     oauthServer.checkTokenAccess("permitAll()"); 
    } 
}