I am trying to create a job on Jenkins using java client (https://github.com/jenkinsci/java-client-api) by calling .createJob(String jobName, String configXml) . However, Jenkins server throws 403 forbidden error.
Sample Code :
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);
Now, error I am getting :
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 security : When I select "Any user can do any thing", job creation is successful. However, when I select "Logged In user can do any thing", I am getting the above error. Moreover, even though I am sending correct user and password, with all permission to create job ( able to create a job using Jenkins web UI). What permission or setting change is required to achieve this.
Thanks