获取 JWT 令牌时获取 400

尝试示例项目:https://github.com/docusign/eg-01-java-jwt


出现以下错误:


Fetching an access token via JWT grant...

Exception in thread "main" com.docusign.esign.client.ApiException: Error while requesting an access token: POST https://account-d.docusign.com/oauth/token returned a response status of 400 Bad Request

    at com.docusign.esign.client.ApiClient.requestJWTUserToken(ApiClient.java:740)

我猜我在组装 JWT 请求时错过了一些东西:


    String privateKey = DSConfig.PRIVATE_KEY.replace("\\n", "\n");

    byte[] privateKeyBytes = privateKey.getBytes();

    apiClient.setOAuthBasePath(DSConfig.DS_AUTH_SERVER);


    OAuth.OAuthToken oAuthToken = apiClient.requestJWTUserToken(

        DSConfig.CLIENT_ID,

        DSConfig.IMPERSONATED_USER_GUID,

        scopes,

        privateKeyBytes,

        TOKEN_EXPIRATION_IN_SECONDS);

配置属性:


# Integrator Key  (client id) iss

DS_CLIENT_ID=4dcfdaa1-xxxx-xxxx-xxxx-110bf207310f

# API username Guid sub

DS_IMPERSONATED_USER_GUID=5aff04e4-xxxx-xxxx-xxxx-7ac9eefdac1a


# private key string

DS_PRIVATE_KEY=\n\

-----BEGIN RSA PRIVATE KEY-----\n\

MIIEowIBAAKCAQEAgb2XJwtQ3S8henWphAtUcAChdDl1yYzHllytR4DZMY5hqp6E\n\

8A2kxblecKHSa4OMn5fP2liyWOCNNA7Vactj0/zI60yUdeOtRg4GyjjG/ShPc80F\n\

...

sJn5DNlHlwpQjsxyVpxrkGNIRzhTUxdBGZ4VZrh5QM77z9kSX9uKkZ7oZQWv7IcJ\n\

hO80HJ6v12HvTqypoqqOvVPKC1SK61cwdWdKi1GExcPqbrFoAJkB\n\

-----END RSA PRIVATE KEY-----

我得到的唯一错误是:


Exception in thread "main" com.docusign.esign.client.ApiException: Error while requesting an access token: POST https://account-d.docusign.com/oauth/token returned a response status of 400 Bad Request

想知道为什么它在 400 时失败,并且没有其他信息可以用来弄清楚为什么我得到 400。


我打赌你们可能知道为什么会发生这种情况。提前致谢。


PIPIONE
浏览 127回答 3
3回答

倚天杖

当前版本的 DocuSign Java SDK 不会报告从 DocuSign 收到的错误原因。即将发布的 Java SDK(候选版本现已推出)修复了此问题。(但我认为该示例需要更新。)我认为这就是您遇到的问题。正如德鲁在他的回答中所说,潜在的错误可能是consent_required。

撒科打诨

假设其他一切都正确,您是否已授予申请同意书?当您使用 JWT Grant 工作流程时,您需要确认您已授予两个范围:signtaure impersonation. 个人同意要求您导航到特定 URL、进行身份验证并授予应用程序以您身份行事的权限。组织同意要求您拥有已声明的域,并且仅适用于电子邮件地址位于该域下的用户。

Smart猫小萌

我认为这不是同意的问题。我可以看到它已创建且可撤销。还有其他想法吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java