Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取JWT令牌时获取400_Java_Docusignapi - Fatal编程技术网

Java 获取JWT令牌时获取400

Java 获取JWT令牌时获取400,java,docusignapi,Java,Docusignapi,使用示例项目: 获取以下错误: 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

使用示例项目:

获取以下错误:

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


我打赌你们可能知道为什么会这样。提前感谢。

假设其他一切都是正确的,您是否同意申请?当您使用JWT授权工作流时,您需要确认您已经授权了两个作用域:
signtaure-impersonation
。个人同意要求您导航到特定的URL,进行身份验证,并授予应用程序作为您的权限

组织同意要求您拥有一个声明的域,并且仅适用于具有该域下电子邮件地址的用户


假设所有其他内容都正确,您是否批准了申请许可?当您使用JWT授权工作流时,您需要确认您已经授权了两个作用域:
signtaure-impersonation
。个人同意要求您导航到特定的URL,进行身份验证,并授予应用程序作为您的权限

组织同意要求您拥有一个声明的域,并且仅适用于具有该域下电子邮件地址的用户


当前版本的DocuSign Java SDK未报告从DocuSign收到的错误原因。即将发布的JavaSDK(候选发行版现在可用)修复了这个问题。(但我认为这个例子需要更新。)


我想这就是你遇到的问题。正如Drew在回答中所说,潜在的错误可能是需要同意

当前版本的DocuSign Java SDK未报告从DocuSign收到的错误原因。即将发布的JavaSDK(候选发行版现在可用)修复了这个问题。(但我认为这个例子需要更新。)

我想这就是你遇到的问题。正如Drew在回答中所说,潜在的错误可能是需要同意

谢谢德鲁和拉里

我认为这不是同意的问题。我可以看到它是创建和可撤销的。还有其他想法吗?

谢谢德鲁和拉里


我认为这不是同意的问题。我可以看到它是创建和可撤销的。还有其他想法吗?

谢谢拉里。我尝试使用他们的SDK版本3.2.0-RC2,它显示“{”错误“:“需要同意”}”。似乎我没有正确创建同意。如果您需要为您的所有用户(在一个域内)创建同意,请查看组织管理员。谢谢Larry。我尝试使用他们的SDK版本3.2.0-RC2,它显示“{”错误“:“需要同意”}”。似乎我没有正确创建同意。如果您需要为您的所有用户(在一个域内)覆盖同意,请查看组织管理员。很抱歉,我需要接受拉里的答案,因为当我运行它时,它会给出更好的结果。再次感谢您的帮助。我已经更新了我的答案,因为您使用的是JWT auth,您需要对两个作用域授予许可:签名和模拟。谢谢。很抱歉,我需要接受拉里的答案,因为当我运行它时,它会给出更好的结果。再次感谢您的帮助。我已经更新了我的答案,因为您使用的是JWT auth,所以您需要对两个作用域授予许可:签名和模拟