【问题标题】:Error when generating DocuSign JWT Token in Java在 Java 中生成 DocuSign JWT 令牌时出错
【发布时间】:2019-08-01 02:37:50
【问题描述】:

我已经下载了JWT Auth sample code

我已经完成并创建了我的集成应用程序并添加了私钥。

修改了 ExampleBase.java 文件以增加日志记录。

OAuth.OAuthToken oAuthToken = null;
    System.out.println("Client ID: " + DSConfig.CLIENT_ID);
    System.out.println("IUG: " + DSConfig.IMPERSONATED_USER_GUID);
    System.out.println("Scopes: " + scopes);
    System.out.println("Private Key: " + privateKey);
    System.out.println("Token Exp: " + TOKEN_EXPIRATION_IN_SECONDS);

    try {
        oAuthToken = apiClient.requestJWTUserToken(
                DSConfig.CLIENT_ID,
                DSConfig.IMPERSONATED_USER_GUID,
                scopes,
                privateKeyBytes,
                TOKEN_EXPIRATION_IN_SECONDS);

    } catch (IOException e) {
        System.err.println("Error ---IO Exception---");
        System.err.println(e.getMessage());
        System.err.println(Arrays.toString(e.getStackTrace()));
    } catch (IllegalArgumentException e) {
        System.err.println("Error while update/fetching token!");
        System.err.println(e.getLocalizedMessage());
        System.err.println(Arrays.toString(e.getStackTrace()));
    } catch (ApiException e) {
        System.err.println("API Exception!");
        e.printStackTrace();
    }

代码输出

Sending an envelope. The envelope includes HTML, Word, and PDF documents. It takes about 15 seconds for DocuSign to process the envelope request... 
Token: null

Fetching an access token via JWT grant...
Client ID: cdb3.......2100207
IUG: 7......6
Scopes: [signature]
Private Key: -----BEGIN RSA PRIVATE KEY-----
MIIEogIBAADrH3w0OwPqp0iSLfDgx3kmiCxdnUW6oGUl
llBBsrkaTrPh4DGbFZhS8XiRbwuAFTWkHbLltYP0VoVHmBUhJomPie9+nAfuSWqh
kll5z/ygcGs7Vrn/mZcXTg4VihLzLphlV4FHBfwneQxq/PVIT0U=
-----END RSA PRIVATE KEY-----
Token Exp: 3600
API Exception!
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)
    at com.docusign.example.jwt.ExampleBase.updateToken(ExampleBase.java:62)
    at com.docusign.example.jwt.ExampleBase.checkToken(ExampleBase.java:40)
    at com.docusign.example.jwt.SendEnvelope.sendEnvelope(SendEnvelope.java:54)
    at com.docusign.example.jwt.JWTExample.main(JWTExample.java:24)
Done. Continuing...

DocuSign Exception!
    Reason: 0
    Error Reponse: null

Process finished with exit code 0

我正在调用 DocuSign API 客户端 requestJWTUserToken 并且调用失败并出现 400 Bad Request。可能是 JSON 正文还是我缺少其他内容?

更新(7/31):- 在线阅读后,我发现我们必须将密钥转换为pkcs8格式(Java)。 This 确实帮助我解析密钥并生成 Java 密钥对。仍然遇到生成令牌的问题。

【问题讨论】:

  • 示例代码非常糟糕——“APIException”处理程序不会给您任何线索,说明出了什么问题。建议:将System.err.println("\nDocuSign Exception!"); 更改为e.printStackTrace();,并使用堆栈回溯更新您的帖子。

标签: java jwt docusignapi


【解决方案1】:

好的 - 感谢您修改代码以获取堆栈回溯。

这是一个已知问题,记录在此:

https://github.com/docusign/docusign-csharp-client/issues/187

您好,ReadMe 中的使用示例对 沙盒环境。

但是,使用相同的代码,但使用我的生产用户 ID 和 OAuth “account.docusign.com”的基本路径返回 400 Bad Request 错误。

它可以 100% 重复。

请帮忙,谢谢!

您正在使用 Java(不是 C#)进行编码,但这听起来像是同一个问题。

我已经创建了一张票,#04233413。一直没有 CS 团队自 2018 年 6 月 25 日以来的回复。

建议:

尝试查看这些链接:

请发回你找到的东西!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 2021-07-04
    • 2018-08-29
    • 2021-07-29
    • 2016-11-08
    • 2018-07-31
    • 2019-10-19
    相关资源
    最近更新 更多