in src/main/java/org/apache/maven/plugins/changes/jira/RestJiraDownloader.java [710:751]
private void doSessionAuth(CloseableHttpClient client, String jiraUrl)
throws IOException, MojoExecutionException, NoRest {
Server server = settings.getServer(jiraServerId);
if (server != null) {
SettingsDecryptionResult result = settingsDecrypter.decrypt(new DefaultSettingsDecryptionRequest(server));
if (!result.getProblems().isEmpty()) {
for (SettingsProblem problem : result.getProblems()) {
log.error(problem.getMessage());
}
} else {
jiraUser = result.getServer().getUsername();
jiraPassword = result.getServer().getPassword();
}
}
if (jiraUser != null) {
StringWriter jsWriter = new StringWriter();
try (JsonGenerator gen = jsonFactory.createGenerator(jsWriter)) {
gen.writeStartObject();
gen.writeStringField("username", jiraUser);
gen.writeStringField("password", jiraPassword);
gen.writeEndObject();
}
HttpPost post = new HttpPost(jiraUrl + "/rest/auth/1/session");
post.addHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.getMimeType());
post.setEntity(new StringEntity(jsWriter.toString()));
try (CloseableHttpResponse response = client.execute(post)) {
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
if (statusCode != HttpStatus.SC_UNAUTHORIZED && statusCode != HttpStatus.SC_FORBIDDEN) {
// if not one of the documented failures, assume that there's no rest in there in the first
// place.
throw new NoRest();
}
throw new MojoExecutionException(String.format("Authentication failure status %d.", statusCode));
}
}
}
}