JIRA 使用 Rest Assured API's 创建错误:AuthenticationException:无效的用户名或密码
JIRA Creating Bug using Rest Assured API's : AuthenticationException: Invalid Username or Password
查询:
使用 Rest assured API(java) 测试失败时自动在 JIRA 门户中创建 Bug 但输出为 AuthenticationException: Invalid Username or Password 但在 Postman 中同样成功。我可以创建 Bug 并使用 Jira 的所有 APIs,它可以通过基本的用户名和密码身份验证正常工作 itself.Have 尝试了几个我在 Whosebug 中发现的场景,但响应相同(AuthenticationException:无效用户名或密码)
采取的步骤:
Scenario 1 :
------------
public void endTest(ITestResult result) throws JiraException {
System.out.println("Ended Test execution");
String username = "*******";
String password = "*******";
if (result.getStatus() == ITestResult.FAILURE) {
BasicCredentials cred = new BasicCredentials(username, password);
JiraClient jira = new JiraClient("http://localhost:8080/", cred);
Issue issueName = jira.createIssue("AAA", "Bug").field(Field.SUMMARY, result.getMethod().getMethodName() + "is failed due to: " + result.getThrowable().toString()).field(Field.DESCRIPTION, "Please take this Bug priority").execute();
System.out.println("Issue created in Jira with key : " + issueName.getKey());
}
}
Response : net.rcarz.jiraclient.JiraException: Failed to retrieve issue metadata
401 Unauthorized: {"servlet":"Stapler","message":"Invalid password/token for user: *******","url":"/rest/api/latest/issue/createmeta","status":"401"}
Scenario 2 :
------------
public static String invokePostMethod() throws ClientHandlerException, AuthenticationException, IOException {
String username = "*******";
String password = "*******";
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/rest/api/2/issue");
String data = "{\n" +
" \"fields\": {\n" +
" \"project\": {\n" +
" \"key\":\"QQQ\"\n" +
" },\n" +
" \"summary\": \"creating Bug QQQ project\",\n" +
" \"description\": \"Exception three\",\n" +
" \"issuetype\": {\n" +
" \"name\":\"Bug\"\n" +
" }\n" +
" }\n" +
"}";
String auth = new String(Base64.encode(username + ":" + password));
ClientResponse response = webResource.header("Authorization", "Basic " + auth).type("application/json").accept("application/json").post(ClientResponse.class, data);
int statusCode = response.getStatus();
if (statusCode == 401) {
throw new AuthenticationException("Invalid Username or Password");
} else if (statusCode == 403) {
throw new AuthenticationException("Forbidden");
} else if (statusCode == 200 || statusCode == 201) {
System.out.println("Ticket Create succesfully");
} else {
System.out.print("Http Error : " + statusCode);
}
// ******************************Getting Responce body*********************************************
BufferedReader inputStream = new BufferedReader(new InputStreamReader(response.getEntityInputStream()));
String line = null;
while ((line = inputStream.readLine()) != null) {
System.out.println(line);
}
return response.getEntity(String.class);
}
Response: Exception caught - Invalid Username or Password
找到解决方案:糟糕的是我愚蠢地检查了以下条件
看起来像两个服务器 运行ning 在同一个端口
查看一个端口有多少服务运行的命令:sudo lsof -i:8080
杀死端口的命令:kill -9
查询:
使用 Rest assured API(java) 测试失败时自动在 JIRA 门户中创建 Bug 但输出为 AuthenticationException: Invalid Username or Password 但在 Postman 中同样成功。我可以创建 Bug 并使用 Jira 的所有 APIs,它可以通过基本的用户名和密码身份验证正常工作 itself.Have 尝试了几个我在 Whosebug 中发现的场景,但响应相同(AuthenticationException:无效用户名或密码)
采取的步骤:
Scenario 1 :
------------
public void endTest(ITestResult result) throws JiraException {
System.out.println("Ended Test execution");
String username = "*******";
String password = "*******";
if (result.getStatus() == ITestResult.FAILURE) {
BasicCredentials cred = new BasicCredentials(username, password);
JiraClient jira = new JiraClient("http://localhost:8080/", cred);
Issue issueName = jira.createIssue("AAA", "Bug").field(Field.SUMMARY, result.getMethod().getMethodName() + "is failed due to: " + result.getThrowable().toString()).field(Field.DESCRIPTION, "Please take this Bug priority").execute();
System.out.println("Issue created in Jira with key : " + issueName.getKey());
}
}
Response : net.rcarz.jiraclient.JiraException: Failed to retrieve issue metadata
401 Unauthorized: {"servlet":"Stapler","message":"Invalid password/token for user: *******","url":"/rest/api/latest/issue/createmeta","status":"401"}
Scenario 2 :
------------
public static String invokePostMethod() throws ClientHandlerException, AuthenticationException, IOException {
String username = "*******";
String password = "*******";
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/rest/api/2/issue");
String data = "{\n" +
" \"fields\": {\n" +
" \"project\": {\n" +
" \"key\":\"QQQ\"\n" +
" },\n" +
" \"summary\": \"creating Bug QQQ project\",\n" +
" \"description\": \"Exception three\",\n" +
" \"issuetype\": {\n" +
" \"name\":\"Bug\"\n" +
" }\n" +
" }\n" +
"}";
String auth = new String(Base64.encode(username + ":" + password));
ClientResponse response = webResource.header("Authorization", "Basic " + auth).type("application/json").accept("application/json").post(ClientResponse.class, data);
int statusCode = response.getStatus();
if (statusCode == 401) {
throw new AuthenticationException("Invalid Username or Password");
} else if (statusCode == 403) {
throw new AuthenticationException("Forbidden");
} else if (statusCode == 200 || statusCode == 201) {
System.out.println("Ticket Create succesfully");
} else {
System.out.print("Http Error : " + statusCode);
}
// ******************************Getting Responce body*********************************************
BufferedReader inputStream = new BufferedReader(new InputStreamReader(response.getEntityInputStream()));
String line = null;
while ((line = inputStream.readLine()) != null) {
System.out.println(line);
}
return response.getEntity(String.class);
}
Response: Exception caught - Invalid Username or Password
找到解决方案:糟糕的是我愚蠢地检查了以下条件 看起来像两个服务器 运行ning 在同一个端口 查看一个端口有多少服务运行的命令:sudo lsof -i:8080 杀死端口的命令:kill -9