在Java中生成DocuSign JWT令牌时出错

问题描述 投票:0回答:1

我已经下载了JWT Auth示例代码

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

修改了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 客户端请求JWTUserToken,但调用失败并显示 400 错误请求。可能是 JSON 正文还是我遗漏了其他内容?

更新

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

java jwt docusignapi
1个回答
1
投票

这是一个已知问题,记录如下:

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

您好,自述文件中的用法示例与 沙盒环境。

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

它可以 100% 重现。

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

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

建议:

尝试查看这些链接:

© www.soinside.com 2019 - 2024. All rights reserved.