【发布时间】:2018-08-22 16:30:58
【问题描述】:
我正在使用 OAuth2 保护 Spring Cloud/Spring Boot 微服务,并且所有似乎都在授权服务器中很好地连接起来。但是,当我通过邮递员向 /oauth/token 发送 POST 请求以获取带有 grant_type = client_credentials 的访问令牌时,我得到以下响应:
{
"error": "invalid_client",
"error_description": "Unauthorized grant type: client_credentials"
}
但是,在注册 OAuth 客户端的 oauth_client_details 数据库表中,我为发出此请求的当前客户端设置了以下设置;
authorized_grant_types = `password, authorization_code, client_credentials, refresh_token`
所以我冒昧地调试了 Spring Boot 的整个 oauth 流程,发现AbstractTokenGranter.validateGrantType(String grantType, ClientDetails clientDetails) 方法中发生了一些非常有趣的事情。见下图;
所以我想了解这里可能发生的事情,因为这对我来说实际上是深不可测的。
【问题讨论】:
标签: java spring-boot spring-security oauth-2.0 spring-security-oauth2