jenkinsci / java-client-api

A Jenkins API client for Java
MIT License
901 stars 470 forks source link

org.apache.http.client.HttpResponseException: status code: 403, reason phrase: Forbidden #434

Open kumarshorav11 opened 4 years ago

kumarshorav11 commented 4 years ago

I am getting this error while creating a job through -

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)

I am using below 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);

On Jenkins server, in security configuration, option - "Logged in User can do any thing" option is set. However, when I have selected option "Any user can do any thing " , I am able to create job by calling .createJob(String jobName, String jobXml). So, I donot know what actually I am missing ? what configuration needs to be changed in Jenkins server. I can't opt option "Any user can do any thing" for security reason. I am struggling to this since very long. Please help or suggest.

Thanks