Я пытаюсь создать работу на Jenkins, используя java-клиент (https://github.com/jenkinsci/java-client-api), вызвав .createJob (String jobName, String configXml). Однако сервер Jenkins выдает 403 запрещенную ошибку.
Образец кода :
HttpClientBuilder builder = HttpClientBuilder.create();
JenkinsHttpClient client = new JenkinsHttpClient(uri, builder, "XXX", "XXX");
JenkinsServer jenkins = new JenkinsServer(client);
String sourceXML = readFile("src/main/resources/config.xml");
System.out.println(String.format("Installed Jenkins Version >> %s", jenkins.getVersion().getLiteralVersion()));//works and gives correct result
jenkins.createJob("test-nov1", sourceXML);
Теперь я получаю ошибку:
Exception in thread "main" org.apache.http.client.HttpResponseException: status code: 403, reason phrase: Forbidden
at com.offbytwo.jenkins.client.validator.HttpResponseValidator.validateResponse(HttpResponseValidator.java:11)
at com.offbytwo.jenkins.client.JenkinsHttpClient.post_xml(JenkinsHttpClient.java:375)
at com.offbytwo.jenkins.JenkinsServer.createJob(JenkinsServer.java:389)
at com.offbytwo.jenkins.JenkinsServer.createJob(JenkinsServer.java:359)
at com.hcl.OffByTwoJenkins.main(OffByTwoJenkins.java:31)
Безопасность Jenkins Server: когда я выбираю «Любой пользователь может делать что угодно», задание создается успешно. Однако, когда я выбираю «Зарегистрированный пользователь может делать что угодно», я получаю указанную выше ошибку. Более того, даже несмотря на то, что я отправляю правильный пользователь и пароль, со всеми разрешениями на создание задания (возможность создать задание с помощью веб-интерфейса Jenkins). Какое разрешение или изменение настроек требуется для этого.
Спасибо
Чтобы решить эту проблему, попробуйте снять флажок «Предотвращение эксплойтов подделки межсайтовых запросов» в jenkins.com/configureSecurity раздел, и он начал работать.