Spring boot oAuth2.0-Fitbit不返回身份验证代码(属性不能为空错误)

Spring boot oAuth2.0-Fitbit不返回身份验证代码(属性不能为空错误),spring-boot,oauth-2.0,fitbit,Spring Boot,Oauth 2.0,Fitbit,我一直在努力为Fitbit API实现授权代码授权流。我设置了WebSecurityConfigureAdapter,并正确地重定向到Fitbit/oauth2/authorize页面,在那里我可以授予权限。但是,当我允许我的应用程序访问时,它会显示以下内容:授权\请求\未找到。此外,url不包含代码。 我真的找不到关于如何使用Spring Boot实现下一步的好文档。 如果有人能为我指出正确的方向,我将不胜感激。谢谢 堆栈: 问题在于访问令牌请求。在授权代码授权流之后,您需要将授权标头设置为b

我一直在努力为Fitbit API实现授权代码授权流。我设置了WebSecurityConfigureAdapter,并正确地重定向到Fitbit/oauth2/authorize页面,在那里我可以授予权限。但是,当我允许我的应用程序访问时,它会显示以下内容:授权\请求\未找到。此外,url不包含代码。 我真的找不到关于如何使用Spring Boot实现下一步的好文档。 如果有人能为我指出正确的方向,我将不胜感激。谢谢 堆栈:
问题在于访问令牌请求。在授权代码授权流之后,您需要将授权标头设置为basic。您的客户机id和密码与冒号连接并编码为Base64将成为您的基本授权标头值

您可以在官方文档中找到更多信息:

在spring安全中实现这一点非常简单。只需按照本教程操作即可:

CustomRequestEntityConverter类的Convert方法应如下所示:

@Override
public RequestEntity<?> convert(OAuth2AuthorizationCodeGrantRequest req) {
    RequestEntity<?> entity = defaultConverter.convert(req);
    MultiValueMap<String, String> headers = entity.getHeaders();

    String authorization = Base64.getEncoder().encodeToString(BASIC_AUTHORIZATION.getBytes());

    HttpHeaders httpHeaders = new HttpHeaders();

    httpHeaders.setBasicAuth(authorization);
    httpHeaders.addAll(headers);

    return new RequestEntity<>(entity.getBody(), httpHeaders, entity.getMethod(), entity.getUrl());
}
@覆盖
公共请求实体转换(OAuth2AuthorizationCodeGrantRequest请求){
RequestEntity实体=defaultConverter.convert(req);
多值映射头=entity.getHeaders();
String authorization=Base64.getEncoder().encodeToString(BASIC_authorization.getBytes());
HttpHeaders HttpHeaders=新的HttpHeaders();
httpHeaders.setBasicAuth(授权);
httpHeaders.addAll(headers);
返回新的RequestEntity(entity.getBody(),httpHeaders,entity.getMethod(),entity.getUrl());
}