1

I just try to fetch general information from zapi api, but getting error Expecting claim 'qsh' to have value '7f0d00c2c77e4af27f336c87906459429d1074bd6eaabb81249e10​​42d4b84374' but instead it has the value '1c9e9df281a969f497d78c7636abd8a20b33531a960e5bd92da0c725e9175de9'

API 链接:https ://prod-api.zephyr4jiracloud.com/connect/public/rest/api/1.0/config/generalinformation

谁能帮帮我。

4

2 回答 2

2

我绝对可以帮你解决这个问题。您需要以正确的方式生成 JWT 令牌。

package com.thed.zephyr.cloud.rest.client.impl;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import com.thed.zephyr.cloud.rest.ZFJCloudRestClient;
import com.thed.zephyr.cloud.rest.client.JwtGenerator;

public class JWTGenerator {

                public static void main(String[] args) throws URISyntaxException, IllegalStateException, IOException {
                                String zephyrBaseUrl = "https://prod-api.zephyr4jiracloud.com/connect";

                                String accessKey = "TYPE YOUR ACCESS KEY-GET IT FROM ZEPHYR";
                                String secretKey = "TYPE YOUR SECRET KEY-GET IT FROM ZEPHYR";
                                String userName = "TYPE YOUR USER - GET IT FROM ZEPHYR/JIRA";

                                ZFJCloudRestClient client = ZFJCloudRestClient.restBuilder(zephyrBaseUrl, accessKey, secretKey, userName).build();
                                JwtGenerator jwtGenerator = client.getJwtGenerator();

                                String createCycleUri = zephyrBaseUrl + "/public/rest/api/1.0/cycles/search?versionId=<TYPE YOUR VERSION ID HERE>&projectId=<TYPE YOUR PROJECT ID HERE>";

                                URI uri = new URI(createCycleUri);
                                int expirationInSec = 360;
                                String jwt = jwtGenerator.generateJWT("GET", uri, expirationInSec);
                                //String jwt = jwtGenerator.generateJWT("PUT", uri, expirationInSec);
                                //String jwt = jwtGenerator.generateJWT("POST", uri, expirationInSec);

                                System.out.println("FINAL API : " +uri.toString());
                                System.out.println("JWT Token : " +jwt);    

                }
 }

还要克隆这个存储库:https ://github.com/zephyrdeveloper/zfjcloud-rest-api ,它会为你提供所有有相应编码的方法。您可以构建一个 Maven 项目以直接导入这些依赖项。

*我也花了好几天的时间来弄清楚,所以请耐心等待,这只是您生成正确 JWT 的时间。

于 2017-05-03T17:23:29.363 回答
2

查询字符串参数必须按字母顺序排序,这样可以解决问题。
请参阅此链接以供参考:
https ://developer.atlassian.com/cloud/bitbucket/query-string-hash/

于 2018-08-14T12:07:34.340 回答