代码之家  ›  专栏  ›  技术社区  ›  SourceVisor

SpringBootOAuth2的AbstractTokenGranter.validateGrantType()方法中发生了什么?

  •  3
  • SourceVisor  · 技术社区  · 6 年前

    我正在用OAuth2保护Spring Cloud/Spring Boot微服务,所有这些看起来都很好地连接在授权服务器上。但当我通过邮递员向 /oauth/token 获取访问令牌 grant_type = client_credentials 我得到以下回复:

    {
        "error": "invalid_client",
        "error_description": "Unauthorized grant type: client_credentials"
    }
    

    但是在 oauth_client_details

    authorized_grant_types = `password, authorization_code, client_credentials, refresh_token`
    

    所以我冒昧地调试了Spring Boot的整个oauth流,发现在 AbstractTokenGranter.validateGrantType(String grantType, ClientDetails clientDetails)

    enter image description here

    所以我想知道这里可能发生了什么,因为我几乎无法理解。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Vijay Nandwana    6 年前

    看起来你在使用关系数据库管理系统。在中插入客户记录时 oauth_client_details 表中,确保值中没有空格 authorized_grant_types

    值应如下所示(逗号后无空格):

    'password,client_credentials,refresh_token'