Thank you Robert and Ben for your tips. This is the closest I've been able to come to reproducing the form-based authentication captured with wireshark.
curl -v -c cookies.txt http://localhost:8080/jenkins/ 200 OK curl -v -c cookies.txt -b cookies.txt http://localhost:8080/jenkins/loginEntry?from=%2Fjenkins%2F 200 OK curl -v -c cookies.txt -b cookies.txt -H "Referer: http://localhost:8080/jenkins/loginEntry?from=%2Fjenkins%2F\r\n" -d "j_username=admin&j_password=admin" http://localhost:8080/jenkins/j_security_check 302 Found curl -v -c cookies.txt -b cookies.txt -X POST http://localhost:8080/jenkins/job/test/build?delay=0sec 403 Forbidden (authenticated as anonymous) So, I'm unsure if my POST to j_security_check didn't work, or if the roles in my tomcat-users.xml aren't being mapped auto-magically. I've read through some tomcat docs (http://tomcat.apache.org/tomcat-7.0-doc/), but I'm really not sure what I'm looking for. Scott tomcat-users.xml ... <role rolename="admin"/> <user username="admin" password="admin" roles="manager-gui,admin"/> ... In Jenkins' Configure Global Security > Access Control > Authorization > Matrix-based security, the admin user has every authorization checked. On Wednesday, June 4, 2014 8:54:36 PM UTC-4, Ben Castellucci wrote: > > Robert is correct - when delegating you are entirely subject to > authentication against the container. Jenkins handles no part of > authentication in this situation. It only handles authorization via > roles/groups which you sometimes have to tell the container to map. For > example, you have a user scott defined in tomcat-users.xml. scott is a > member of admin role (also defined in tomcat-users.xml). You should have no > problems authenticating scott against the container trouble is telling the > container that it's 'admin' role means the same 'admin' group in the > jenkins app deployed in it. Until you do that scott cannot log into jenkins. > > It has been a while since I dealt with tomcat. In weblogic, for example, > you would pick the combination deployment descriptors and container > security policy then create either per-app or global role to group > mappings. I am sure there is some sort of tomcat equivalent. Tomcat may > just do this auto-magically. In fact, according to [1] it looks like it may > 'just work' with only what is in tomcat-users.xml. > > [1] https://wiki.jenkins-ci.org/display/JENKINS/Tomcat > On Jun 3, 2014 3:52 AM, "Sandell, Robert" <[email protected] > <javascript:>> wrote: > >> Jenkins has a servlet filter [1] that last time I checked accepts http >> basic auth. But I’m not sure how/if this works when delegating to the >> servlet container, you’d probably need to authenticate the way the >> container dictates in that case. >> >> >> >> [1] >> https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/security/HudsonFilter.java >> >> >> >> >> >> *Robert Sandell* >> >> Software Tools Engineer - SW Environment and Product Configuration >> >> Sony Mobile Communications >> >> >> >> *From:* [email protected] <javascript:> [mailto: >> [email protected] <javascript:>] *On Behalf Of *Scott Cowan >> *Sent:* den 2 juni 2014 21:54 >> *To:* [email protected] <javascript:> >> *Subject:* form-based auth script >> >> >> >> I've followed the "Java example with httpclient 4.1.2" section of >> https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients >> and been able to successfully authenticate a client with a Jenkins deployed >> in Winstone, but I haven't been able to do so when it's deployed in Tomcat >> and access control is "Delegate to servlet container". A GET on " >> http://localhost:8080/jenkins" with user/pass in basic auth scheme >> returns a "HTTP/1.1 500 Internal Server Error" with the explanation, >> "anonymous is missing the Overall/Read permission". I've enabled >> "Matrix-based security" and given no permissions to Anonymous. >> >> I noticed the auth-method in the jenkins web.xml is FORM, whether >> deployed in Winstone or Tomcat. Can a client authenticate with this >> configuration? Can a client negotiate a form-based authentication some >> how? Does anyone have an example script to do this? >> >> Thanks in advance, >> Scott >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Jenkins Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Jenkins Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
