我正在使用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)
方法中发生了一件非常有趣的事情。请参见下图;
所以我想了解一下这里可能发生的情况,因为这对我来说实际上是深不可测的。
答案 0 :(得分:2)
好像您正在使用RDBMS。在 it('kendo-grid element should contain resizable attribute with "true" value', () => {
const element = fixture.debugElement.nativeElement.querySelector('kendo-grid');
expect(element.resizable).toBeTruthy();
});
表中插入客户记录时,请确保oauth_client_details
列的值中没有空格。
值应该是这样的(逗号后不能有空格):
authorized_grant_types