PatrickRoumanoff / nexus-crowd-plugin

Sonatype Nexus plugin for Atlassian Crowd integration
http://patrickroumanoff.github.io/nexus-crowd-plugin/
40 stars 20 forks source link

Nexus 2.9.1-02 and Crowd 2.7.2 #20

Closed stackmagic closed 10 years ago

stackmagic commented 10 years ago

I installed the plugin, version 2.7 wouldn't work and I had to use 2.8-Snapshot as suggested in #14. I can see requests hitting crowd but it appears the interaction between the plugin and crowd needs to be updated? The crowd log shows this:

Using SessionFactory 'sessionFactory' for OpenSessionInViewFilter
Opening Hibernate Session in OpenSessionInViewFilter
No basic auth credentials found in request, responding with authentication challenge
Closing Hibernate Session in OpenSessionInViewFilter
Using SessionFactory 'sessionFactory' for OpenSessionInViewFilter
Opening Hibernate Session in OpenSessionInViewFilter
No basic auth credentials found in request, responding with authentication challenge
Closing Hibernate Session in OpenSessionInViewFilter

Generally, I can't login with my crowd user and I also can't find any users when selecting Users > External User Role Mapping

stackmagic commented 10 years ago

The error from the nexus log would be:

127.0.0.1 - - [08/Sep/2014:17:17:00 +0200] "GET /nexus/service/local/plexus_user/ph?_dc=1410189420030 HTTP/1.1" 404 642
jvm 1    | 2014-09-08 17:17:00,153+0200 ERROR [qtp114388565-49] admin org.sonatype.nexus.plugins.crowd.client.CrowdUserManager - Unable to look up user ph
jvm 1    | java.rmi.RemoteException: Error in a Crowd REST call; nested exception is: 
jvm 1    |      com.sun.jersey.api.client.UniformInterfaceException: Client response status: 404
jvm 1    |      at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.handleError(RestClient.java:421) ~[na:na]
jvm 1    |      at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.getUser(RestClient.java:228) ~[na:na]
jvm 1    |      at org.sonatype.nexus.plugins.crowd.client.rest.CachingRestClient.getUser(CachingRestClient.java:73) ~[na:na]
jvm 1    |      at org.sonatype.nexus.plugins.crowd.client.CrowdUserManager.getUser(CrowdUserManager.java:87) ~[na:na]
jvm 1    |      at org.sonatype.security.DefaultSecuritySystem.getUser(DefaultSecuritySystem.java:456) [nexus-security-2.9.1-02.jar:2.9.1-02]
jvm 1    |      at org.sonatype.security.DefaultSecuritySystem.getUser(DefaultSecuritySystem.java:436) [nexus-security-2.9.1-02.jar:2.9.1-02]
jvm 1    |      at org.sonatype.security.rest.users.PlexusUserPlexusResource.get(PlexusUserPlexusResource.java:94) [nexus-restlet1x-plugin-2.9.1-02/:na]
jvm 1    |      at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:233) [nexus-restlet1x-plugin-2.9.1-02/:na]
jvm 1    |      at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:39) [nexus-restlet1x-plugin-2.9.1-02/:na]
jvm 1    |      at org.restlet.resource.Resource.getRepresentation(Resource.java:302) [nexus-restlet1x-plugin-2.9.1-02/:na]
        ... significantly shortened ...
jvm 1    |      at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65]
jvm 1    | Caused by: com.sun.jersey.api.client.UniformInterfaceException: Client response status: 404
jvm 1    |      at com.sun.jersey.api.client.WebResource.handle(WebResource.java:688) ~[na:na]
jvm 1    |      at com.sun.jersey.api.client.WebResource.get(WebResource.java:193) ~[na:na]
jvm 1    |      at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.getUser(RestClient.java:223) ~[na:na]
jvm 1    |      ... 125 common frames omitted

I also tried it with the latest source built from scratch, no success.

stackmagic commented 10 years ago

ugh... nevermind - it was nginx that stripped the Authorization header from the requests. no wonder it didn't work.

add some ssh forwarding (and the correct 'remote address' in crowd) and all is good