Anyone have any ideas on this?
I have some new information: just to check if my preemptive authentication configuration
in settings.xml worked at all, I set my KIE module as a dependency on a project and used
command line Maven 3.2.1 to compile. It successfully authenticated with the Workbench
Maven repository and downloaded the module into my local Maven repository. I had Fiddler
log the HTTP requests and saw that the requests to the Workbench repo had the basic
authentication request header, as I expected. So any ideas on why the request generated by
the API (Aether?) wouldn't have this header? It seems like it's not picking up the
preemptive authentication settings.
Thanks,
Ronak
From: Patel, Ronak (Autonomy)
Sent: Monday, May 12, 2014 5:01 PM
To: rules-users(a)lists.jboss.org
Subject: HTTP 401 Unauthorized when using KIE API on Workbench M2 repository
I'm having trouble authenticating to access the Workbench Maven repository through the
KIE API (kie-ci). My code is the following and fails on the second line with an exception
that says something like module not found. I see the more specific 401 error in the local
Maven repository in the resolver-status.properties file.
KieServices ks = KieServices.Factory.get();
KieContainer kContainer =
ks.newKieContainer(ks.newReleaseId("com.hp.pa.sample", "realestate",
"LATEST"));
I've tried putting in my settings.xml file both suggestions in
https://bugzilla.redhat.com/show_bug.cgi?id=1059584#c4 (also saw the preemptive one in
https://bugzilla.redhat.com/show_bug.cgi?id=1037556 and other threads/forums and bug
reports), but I continue to get the same error.
I did some further investigation using Fiddler and I see that the credentials are not
being included in the HTTP request the code sends for resources in the Workbench Maven
repository. I was expecting the basic authentication header to be in here. The HTTP
request always looks like this (server name changed for security reasons):
GET
http://kiewbserver:8080/kie-drools-wb/maven2/com/hp/pa/sample/realestate/...
HTTP/1.1
Host: kiewbserver:8080
Pragma: no-cache
Cache-Control: no-cache, no-store
Accept-Encoding: gzip
Connection: keep-alive
Connection: keep-alive
Accept: */*
User-Agent: Aether
And the response is a typical HTTP/1.1 401 Unauthorized with the standard JBoss error page
as the body. Using the composer feature in Fiddler, if I issue this same request with the
basic authentication header included, it works, returning an HTTP 200 response with the
requested file.
If I remove the authentication requirement from the Maven repository using the workaround
described in bug 1059584 (referenced above), all my code works fine.
I followed the procedure to create a user for the Workbench on JBoss AS that is
demonstrated in the start of this video:
http://www.youtube.com/watch?v=vj3MNmiUnvY.
That's the user whose credentials I've tried putting in my settings.xml. Is there
anything else that needs to be done on the server side?
Any other ideas on what I may have missed or how to debug this further?
Thank you,
Ronak Patel
Software Designer
HP Autonomy