Giter Site home page Giter Site logo

patrickroumanoff / nexus-crowd-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wdrai/nexus-crowd-plugin

40.0 40.0 20.0 240 KB

Sonatype Nexus plugin for Atlassian Crowd integration

Home Page: http://patrickroumanoff.github.io/nexus-crowd-plugin/

Java 100.00%

nexus-crowd-plugin's People

Contributors

bdemers avatar borgeorgiev avatar brianf avatar dbradicich avatar drndos avatar flopma avatar gschlager avatar jdcasey avatar justinedelson avatar juven avatar patrickroumanoff avatar velo avatar wwomack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nexus-crowd-plugin's Issues

Supported Versions missing in README

This is no apparently, but found no other way to communicate.

Your README states, that the current version is ready for Nexus 2.3.x and Crowd 2.6.x.

I just tested the plugin with

Atlassian Crowd Version: 2.3.3
Sonatype Nexus™ 2.4.0-09

Works great! Thanks!

Would be great to add supported versions to the README

Crowd plugin 2.0.7 doesn't work for Nexus 2.6.4

I upgraded Nexus from version 1.7.2 to version 2.6.4 and followed the instructions here http://patrickroumanoff.github.io/nexus-crowd-plugin/ to integrate it with Crowd 2.4.2.
In the documentation, the crowdServerUrl parameter (crowd-plugin.xml) should be http://[crowdhost]:crowdport]/crowd/, I tried it and none of the users from Realm Crowd would be listed in the Nexus. I changed it to "http://[crowdhost]:crowdport]/crowd/services/" and I could search for Crowd users in Nexus. But Crowd users are still not able to login, they get this error message:
"Incorrect username,password or no permission to use the Nexus User Interface"

In the Nexus log file there isn't errors regarding user failed login just INFO entries like this one:
2014-04-11 13:15:03 INFO [qtp1080054364-70] org.sonatype.nexus.plugins.crowd.client.rest.RestClient - session created for 'buildServer'

In this site https://github.com/flopma/nexus-crowd-plugin they mentioned that the CROWD plugin is now using REST API. Is it necessary to change other configurations in Nexus in order to be compatible with it?

Regards,

Santos

User search does not work against CROWD 2.10.1

I'm using the plugin with Crowd 2.10.1 and when I try to search for users there are exceptions in the log indicating that 2 attributes returned by the REST API of crowd are not supported - not in the UserResponse JAXB bean.

  • created-date
  • updated-date

I've implemented a patch and uploaded the patched jar and everything works as expected. The change was to add the missing fields to the UserResponse bean.

plugin version: 3.1.0
nexus : OSS 3.2.0-01

2017-02-01 18:17:45,580+0000 DEBUG [qtp165439263-74] admin org.sonatype.nexus.plugins.crowd.client.rest.RestClient - searchUsers(bo)
2017-02-01 18:17:45,580+0000 DEBUG [qtp165439263-74] admin org.sonatype.nexus.plugins.crowd.client.rest.RestClient - http://172.31.43.155:8095/crowd/rest/usermanagement/1/search?entity-type=user&max-results=1000&restriction=active%3Dtrue+AND+name%3D%22bo*%22&start-index=0
2017-02-01 18:17:45,655+0000 DEBUG [qtp165439263-74] admin org.sonatype.nexus.plugins.crowd.client.rest.RestClient - getUser(borgeorgiev)
2017-02-01 18:17:45,655+0000 DEBUG [qtp165439263-74] admin org.sonatype.nexus.plugins.crowd.client.rest.RestClient - http://172.31.43.155:8095/crowd/rest/usermanagement/1/user?username=borgeorgiev
2017-02-01 18:17:45,675+0000 INFO  [qtp165439263-74] admin javax.xml.bind.helpers.DefaultValidationEventHandler - DefaultValidationEventHandler: [ERROR]: unexpected element (uri:"", local:"created-date"). Expected elements are <{}password>,<{}display-name>,<{}link>,<{}active>,<{}attributes>,<{}key>,<{}first-name>,<{}email>,<{}last-name> 
     Location: line 1
2017-02-01 18:17:45,676+0000 ERROR [qtp165439263-74] admin org.sonatype.nexus.plugins.crowd.client.rest.RestClient - Error occured while consuming Crowd REST service
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"created-date"). Expected elements are <{}password>,<{}display-name>,<{}link>,<{}active>,<{}attributes>,<{}key>,<{}first-name>,<{}email>,<{}last-name>
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:726) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:247) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:242) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:109) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.childElement(Loader.java:90) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StructureLoader.childElement(StructureLoader.java:237) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:556) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:538) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:153) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) [na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:221) [na:1.8.0_121]
	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:276) [na:1.8.0_121]
	at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.unmarshal(RestClient.java:471) [com.roumanoff.nexus.crowd-plugin:3.1.0]
	at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.getUser(RestClient.java:266) [com.roumanoff.nexus.crowd-plugin:3.1.0]
	at org.sonatype.nexus.plugins.crowd.client.rest.CachingRestClient.getUser(CachingRestClient.java:79) [com.roumanoff.nexus.crowd-plugin:3.1.0]
	at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.searchUsers(RestClient.java:326) [com.roumanoff.nexus.crowd-plugin:3.1.0]
	at org.sonatype.nexus.plugins.crowd.security.CrowdUserManager.searchUsers(CrowdUserManager.java:96) [com.roumanoff.nexus.crowd-plugin:3.1.0]

Sync delay

Sometimes nexus takes some time to refresh changes made on crowd. Is there any fix and/or workaround for this issue?

Crowd plugin doesn't work with Nexus 3.0

I did a test run of crowd plugin for Nexus 3.0 and certainly it doesn't work.

Mainly due to API changes some portions of code are unecessary and some of the methods are never called:

  • initialize
  • destroy
  • field injections

All these issues results in NullPointerExceptions thrown, even when realm is configured properly. Over weekend I found that sisu injects properly new things only over constructors and does not handle @PostConstruct and @PreDestroy annotations (this requires org.eclipse.sisu.bean.LifecycleModule, however I don't know how to wire it in).

More over Karaf feature descriptor is broken and it does not include nexus-crowd-plugin bundle itself.

Plugin fails with <useGroups> configuration tag

Nexus Version 2.8.1-01
Crowd Version: 2.7.1 build 625-2017-01-13

Logs show that the plugin is complaining about the configuration tag true

*SYSTEM org.sonatype.nexus.plugins.crowd.config.DefaultCrowdPluginConfiguration - Invalid XML Configuration
jvm 1 | org.codehaus.plexus.util.xml.pull.XmlPullParserException: Unrecognised tag: 'useGroups' (position: START_TAG seen ...\n ... @6:14)

crowd-plugins.xml xml for this configuration

https://linux-crowd.company.com/crowd/services/ nexus Nexu5 true

When removing the tags from the configuration files the system loads but fails to pull a list of users assigned to the application.

*SYSTEM org.sonatype.nexus.guice.NexusTypeBinder - Found legacy plexus component: org.sonatype.nexus.plugins.crowd.api.CrowdTestPlexusResource
*SYSTEM org.sonatype.nexus.guice.NexusTypeBinder - Found legacy plexus component: org.sonatype.nexus.plugins.crowd.CrowdAuthenticatingRealm
*SYSTEM org.sonatype.nexus.guice.NexusTypeBinder - Found legacy plexus component: org.sonatype.nexus.plugins.crowd.config.DefaultCrowdPluginConfiguration
*SYSTEM org.sonatype.nexus.guice.NexusTypeBinder - Found legacy plexus component: org.sonatype.nexus.plugins.crowd.client.CrowdAuthorizationManager
*SYSTEM org.sonatype.nexus.guice.NexusTypeBinder - Found legacy plexus component: org.sonatype.nexus.plugins.crowd.client.DefaultCrowdClientHolder
*SYSTEM org.sonatype.nexus.guice.NexusTypeBinder - Found legacy plexus component: org.sonatype.nexus.plugins.crowd.client.CrowdUserManager
*SYSTEM org.sonatype.nexus.NxApplication - Plugin manager request "ACTIVATE" on plugin "com.roumanoff.nexus:nexus-crowd-plugin:2.8.0-SNAPSHOT" was successful.
*SYSTEM org.sonatype.nexus.plugins.crowd.CrowdAuthenticatingRealm - Crowd Realm activated...
*SYSTEM org.apache.shiro.cache.ehcache.EhCacheManager - Cache with name 'org.sonatype.nexus.plugins.crowd.CrowdAuthenticatingRealm.authorizationCache.2' does not yet exist. Creating now.
*SYSTEM org.apache.shiro.cache.ehcache.EhCacheManager - Added EhCache named [org.sonatype.nexus.plugins.crowd.CrowdAuthenticatingRealm.authorizationCache.2]
org.sonatype.nexus.plugins.crowd.client.CrowdUserManager - CrowdUserManager is starting...
org.sonatype.nexus.plugins.crowd.client.CrowdAuthorizationManager - CrowdAuthorizationManager is starting...
jvm 1 | at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.getCookieConfig(RestClient.java:173) ~[na:na]
jvm 1 | at org.sonatype.nexus.plugins.crowd.api.CrowdTestPlexusResource.get(CrowdTestPlexusResource.java:62) ~[na:na]
jvm 1 | at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.getCookieConfig(RestClient.java:173) ~[na:na]
jvm 1 | at org.sonatype.nexus.plugins.crowd.api.CrowdTestPlexusResource.get(CrowdTestPlexusResource.java:62) ~[na:na]

crowd-plugin.xml without tags.

https://linux-crowd.company.com/crowd/services/ nexus Nexu5

Nexus 2.9.1-02 and Crowd 2.7.2

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

Nexus 3 in Docker problem with startup.properties

Hello,

i'm trying to get crowd plugin working with a docker installation of nexus 3. It works just fine until the necessity to modify the startup.properties configuration file. I'm not able to append some values to this file from for example entrypoint.sh because of missing permissions at this execution stage of the entrypoint.sh. So one have two possibilities:

  1. modify this file manually within the running container just like you described in a readme
  2. extract the startup.properties from the container, modify it and mount it to the container "hiding" the original one.

The problem with 1. is that after update the modification should be done again. If one forget it, crowd plugin won't be loaded and login failed. The problem with 2. is that after upgrade the startup.properties must be extracted from container, prepared and mounted to container again.

Both ways are not very elegant. So i would like to know, if there is any possibility to start the plugin without modifying the startup.properties file?

Regards

Not working on 3.1.0-04

Hi,

I followed the instructions for a OSS 3.1.0-04 but the plugin (nexus-crowd-plugin-3.0.0.jar) does not even start. I followed the instrcutions on the wiki but no errors. Are there any other necessary steps? Has this been tested on Nexus 3.1 ?

config crowd Synchronisation Interval

in crowd i create new user in nexus-deployment group.
but invoke user-list interface return data is not contain nexus-deployment,
i will not login nexus.
help me!

nexus-crowd-plugin-2.14.0 not able to be activated

our nexus is Nexus Repository Manager OSS 2.14-2-01
but when I unzip the bundle "nexus-crowd-plugin:2.14.0" to the right place, then restart the nexus, it hits this error
This plugin was not able to be activated

... com.roumanoff.nexus:nexus-crowd-plugin:2.14.0 :: action=ACTIVATE result=BROKEN
Reason: Problem installing: reference:file:/appvol/eFX/data/devtoolsuat/nexus-hk-hosted/plugin-repository/nexus-crowd-plugin-2.14.0/
any ideas?

Use against embedded Crowd

Great plugin, have been using it for a while against native Crowd, thanks. Switched over this week to using embedded Crowd in Jira 6.0.1 (using the "JIRA User Server"), but connecting nexus-crowd-plugin to it causes that version of Crowd to crash.

Stack trace from JIRA:

java.lang.NullPointerException
at com.atlassian.crowd.plugin.rest.service.controller.TokenController.createSessionEntityWithMinimalUser(TokenController.java:221)
at com.atlassian.crowd.plugin.rest.service.controller.TokenController.authenticateUser(TokenController.java:67)
at com.atlassian.crowd.plugin.rest.service.resource.TokenResource.authenticateUser(TokenResource.java:101)
at sun.reflect.GeneratedMethodAccessor1525.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:234)
at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:100)
at com.atlassian.plugins.rest.common.interceptor.impl.DefaultMethodInvocation.invoke(DefaultMethodInvocation.java:61)
at com.atlassian.plugins.rest.common.expand.interceptor.ExpandInterceptor.intercept(ExpandInterceptor.java:38)
at com.atlassian.plugins.rest.common.interceptor.impl.DefaultMethodInvocation.invoke(DefaultMethodInvocation.java:61)

admin org.sonatype.nexus.plugins.crowd.client.CrowdUserManager - Unable to get userlist

tools versions:
crowd 2.4.0
jira v6.2.5
nexus 2.8.1-01
nexus-crowd-plugin 2.8.0-SNAPSHOT

=============== ERROR ===========
2014-08-04 11:02:52,838+0800 ERROR [qtp1903689809-54] admin org.sonatype.nexus.plugins.crowd.client.CrowdUserManager - Unable to get userlist
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: 401
jvm 1 | at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.handleError(RestClient.java:423) ~[na:na]
jvm 1 | at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.searchUsers(RestClient.java:282) ~[na:na]
jvm 1 | at org.sonatype.nexus.plugins.crowd.client.CrowdUserManager.searchUsers(CrowdUserManager.java:160) ~[na:na]
jvm 1 | at org.sonatype.security.DefaultSecuritySystem.searchUsers(DefaultSecuritySystem.java:499) [nexus-security-2.8.1-01.jar:2.8.1-01]
jvm 1 | at org.sonatype.security.rest.users.AbstractUserSearchPlexusResource.search(AbstractUserSearchPlexusResource.java:42) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.sonatype.security.rest.users.UserSearchByIdPlexusResource.get(UserSearchByIdPlexusResource.java:94) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:233) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:39) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.resource.Resource.getRepresentation(Resource.java:302) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.resource.Resource.handleGet(Resource.java:464) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Finder.handle(Finder.java:353) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Router.handle(Router.java:504) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:36) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Application.handle(Application.java:341) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Router.handle(Router.java:504) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Router.handle(Router.java:504) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Component.handle(Component.java:676) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.restlet.Server.handle(Server.java:331) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at org.sonatype.nexus.restlet1x.internal.RestletServlet.service(RestletServlet.java:90) [nexus-restlet1x-plugin-2.8.1-01/:na]
jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na]
jvm 1 | at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.8.1-01.jar:2.8.1-01]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.8.1-01.jar:2.8.1-01]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.sonatype.nexus.analytics.internal.RestRequestCollector.doFilter(RestRequestCollector.java:82) [nexus-analytics-plugin-2.8.1-01/:na]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:73) [nexus-core-2.8.1-01.jar:2.8.1-01]
jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.8.1-01.jar:2.8.1-01]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) [metrics-web-2.2.0.jar:na]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) [nexus-core-2.8.1-01.jar:2.8.1-01]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) [nexus-core-2.8.1-01.jar:2.8.1-01]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:70) [nexus-core-2.8.1-01.jar:2.8.1-01]
jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.8.1-01.jar:2.8.1-01]
jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.8.1-01.jar:2.8.1-01]
jvm 1 | at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10]
jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na]
jvm 1 | at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520]
jvm 1 | at java.lang.Thread.run(Thread.java:724) [na:1.7.0_40]
jvm 1 | Caused by: com.sun.jersey.api.client.UniformInterfaceException: Client response status: 401
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.searchUsers(RestClient.java:273) ~[na:na]
jvm 1 | ... 124 common frames omitted

Unable to authenticate with any ID from Crowd

I'm using Nexus 2.7.1-01 and Crowd 2.7.

After setting up the plugin (plugin 2.7.0) on my Nexus, I'm able to add some crowd users from "External User Role Mapping" with Nexus Administrator role assigned.

However, when i tried to login using those IDs, it kept displaying:
"Incorrect username, password or no permission to use the Nexus User Interface. Try again"

I'm quite sure the credential is correct. If the password is wrong, it will display:
"Incorrect username, password or no permission to use the Nexus User Interface. Try again. Please login before attempting further requests"

Please help...

Getting 400 responses from Crowd

First of all thanks for the plugin.

I am using v3.3.1 with Nexus 3.3.1-01 and Crowd 2.10.1. I see the following in the logs every 10-15 seconds:

2017-06-12 22:23:50,092+0000 ERROR [qtp1297635056-250] *UNKNOWN org.sonatype.nexus.plugins.crowd.client.rest.RestClient - Error occured while consuming Crowd REST service
java.rmi.RemoteException: Crowd returned HTTP error code:400 - Bad Request
ResponseEntityProxy{[Content-Type: application/xml,Content-Length: 161,Chunked: false]}
	at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.handleHTTPError(RestClient.java:490) [com.roumanoff.nexus.crowd-plugin:3.3.1]
	at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.authenticate(RestClient.java:176) [com.roumanoff.nexus.crowd-plugin:3.3.1]
	at org.sonatype.nexus.plugins.crowd.security.CrowdAuthenticatingRealm.doGetAuthenticationInfo(CrowdAuthenticatingRealm.java:68) [com.roumanoff.nexus.crowd-plugin:3.3.1]
	at org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:568) [org.apache.shiro.core:1.3.2]
	at org.sonatype.nexus.security.authc.FirstSuccessfulModularRealmAuthenticator.doMultiRealmAuthentication(FirstSuccessfulModularRealmAuthenticator.java:49) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:269) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.nexus.NexusWebSecurityManager.login(NexusWebSecurityManager.java:64) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.web.filter.authc.AuthenticatingFilter.executeLogin(AuthenticatingFilter.java:53) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter.onAccessDenied(BasicHttpAuthenticationFilter.java:227) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162) [org.apache.shiro.web:1.3.2]
	at org.sonatype.nexus.security.authc.NexusBasicHttpAuthenticationFilter.onPreHandle(NexusBasicHttpAuthenticationFilter.java:82) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:203) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:178) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2]
	at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2]
	at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:71) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [org.sonatype.nexus.base:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0]
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0]
	at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.3.1.01]
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115]
	at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2]
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115]
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
2017-06-12 22:24:03,623+0000 ERROR [qtp1297635056-63] *UNKNOWN org.sonatype.nexus.plugins.crowd.client.rest.RestClient - Error occured while consuming Crowd REST service
java.rmi.RemoteException: Crowd returned HTTP error code:400 - Bad Request
ResponseEntityProxy{[Content-Type: application/xml,Content-Length: 161,Chunked: false]}
	at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.handleHTTPError(RestClient.java:490) [com.roumanoff.nexus.crowd-plugin:3.3.1]
	at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.authenticate(RestClient.java:176) [com.roumanoff.nexus.crowd-plugin:3.3.1]
	at org.sonatype.nexus.plugins.crowd.security.CrowdAuthenticatingRealm.doGetAuthenticationInfo(CrowdAuthenticatingRealm.java:68) [com.roumanoff.nexus.crowd-plugin:3.3.1]
	at org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:568) [org.apache.shiro.core:1.3.2]
	at org.sonatype.nexus.security.authc.FirstSuccessfulModularRealmAuthenticator.doMultiRealmAuthentication(FirstSuccessfulModularRealmAuthenticator.java:49) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:269) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.nexus.NexusWebSecurityManager.login(NexusWebSecurityManager.java:64) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.web.filter.authc.AuthenticatingFilter.executeLogin(AuthenticatingFilter.java:53) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter.onAccessDenied(BasicHttpAuthenticationFilter.java:227) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162) [org.apache.shiro.web:1.3.2]
	at org.sonatype.nexus.security.authc.NexusBasicHttpAuthenticationFilter.onPreHandle(NexusBasicHttpAuthenticationFilter.java:82) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:203) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:178) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2]
	at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2]
	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2]
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2]
	at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.3.1.01]
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:71) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [org.sonatype.nexus.base:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.3.1.01]
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0]
	at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0]
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0]
	at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.3.1.01]
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115]
	at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2]
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115]
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]

Any suggestions for what to try? Is this a Crowd version compatibility issue?

Not able to login with Jira User Server users

hi team,

I am trying to integrate nexus authentication to jira server. When i tried Nexus Crowd Plugin. Its able to create the external role mapping & user mapping for Crowd group and crowd user.
but not able to login with Crowd user.

I am able to login with Local users, its working fine.
I tried the Crowd test url (nexus/service/local/crowd/test) its returning OK status.

Am I missing any configuration? Please help to fix this issue.

Version Detail :: Sonatype Nexus :: 2.11.1-01
Nexus Crowd Integration :: 2.9.0
JIRA :: v6.2.7

Thanks in advance,
Kalidas.G

Crowd returned HTTP error code:404 - Not Found

Hello,
i've found following exception in the output, although the functionality seems not to be impaired.

I'm running on Nexus 3.4.0 Crowd 2.12.0 and nexus-crowd-plugin-3.3.1

2017-07-19 13:31:26,781+0000 ERROR [qtp1853710113-47] *UNKNOWN org.sonatype.nexus.plugins.crowd.client.rest.RestClient - Error occured while consuming Crowd REST service
nexus_1          | java.rmi.RemoteException: Crowd returned HTTP error code:404 - Not Found
nexus_1          | org.apache.http.client.entity.DecompressingEntity@20b6668a
nexus_1          |      at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.handleHTTPError(RestClient.java:490)
nexus_1          |      at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.getGroupsFromCrowdLoop(RestClient.java:401)
nexus_1          |      at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.getNestedGroups(RestClient.java:206)
nexus_1          |      at org.sonatype.nexus.plugins.crowd.client.rest.CachingRestClient.getNestedGroups(CachingRestClient.java:70)
nexus_1          |      at org.sonatype.nexus.plugins.crowd.security.CrowdAuthenticatingRealm.doGetAuthorizationInfo(CrowdAuthenticatingRealm.java:83)

Regards

Plugin does not work with Remote User Tokens

I have version 2.9 of the plugin, but this seems to still affect the current version.

When RUT Auth is enabled in Nexus, only local accounts are found. Accounts defined in Crowd are not found. The problem is that CrowdAuthenticatingRealm.getName() does not return the same String as CrowdUserManager.getSource().

Look at:
http://grepcode.com/file/repo1.maven.org/maven2/org.sonatype.security/security-system/3.3/org/sonatype/security/DefaultSecuritySystem.java#DefaultSecuritySystem.orderUserManagers%28%29

where the values are put into a map with the realm name as key. A few lines down the map is accessed
with source as key. If the values do not match, CrowdUserManager is not even used to retrieve user info.
As soon as you change the methods to return the same value, you get exceptions because the rest cache already exists (it looks like the CachingRestClient is now created more than once). As a workaround I simply added a counter to the cache name and everything works. I am not sure what the proper fix for this is, but probably you have an idea.

external user role mapping login failure

I'm using the plugin in version 2.0.7.
Crowd is 2.6.4 and Nexus is running 2.6.0-05.

I followed your instructions and am able to do the following:

  • look up users
  • create external role mapping
  • create external user role mapping
  • attach roles to users

Using the external role mapping I am able to login and see what is defined in the mapping role. This works perfectly.
However, the external user role mapping doesn't behave correctly. I can create it (it loads the user data from Crowd) and attach roles with privileges to it, but I can't login with that user. Login always tells me a failure. After enabling Debug mode for the logs, following appears:

org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus - Event 'NexusAuthenticationEvent{userId='bob',remoteIp='X.X.X.X',successful=true}' fired
org.sonatype.nexus.plugins.crowd.client.rest.CachingRestClient - getNestedGroups(bob) from cache
org.sonatype.security.usermanagement.xml.SecurityXmlUserManager - No user role mapping found for user: bob
org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus - Event 'org.sonatype.nexus.auth.NexusAuthorizationEvent@1ccdcb16' fired
boborg.sonatype.nexus.feeds.record.NexusAuthenticationEventInspector - Successfully authenticated user [bob] from IP address X.X.X.X
org.sonatype.nexus.security.filter.authc.NexusSecureHttpAuthenticationFilter - Request processing is rejected because user "bob" lacks permissions.
org.sonatype.nexus.feeds.record.NexusAuthorizationEventInspector - Unable to authorize user [bob] for read(HTTP method "GET") to /nexus/service/local/authentication/login from IP Address X.X.X.Xuser agent:"n/a"

So Nexus thinks, there is no external user role mapping? But it exists. What do you propose? Thanks

Error in a Crowd REST call

Nexus no longer authenticates with the JIRA embedded Crowd. Worked in Nexus version 2.6.3-01, crowd-plugin version 2.0.8-SNAPSHOT, and JIRA version 6.1.4#6159.

Local service test:
curl http://hostname:8081/nexus/service/local/crowd/test

`

<title>503 - Service Unavailable</title>

503 - Service Unavailable

Unable to authenticate. Check configuration.

`

Full Stack trace:
2014-06-26 13:50:50,515-0700 ERROR [qtp2019526654-40] admin org.sonatype.nexus.plugins.crowd.client.CrowdUserManager - Unable to get userlist java.rmi.RemoteException: Error in a Crowd REST call; nested exception is: com.sun.jersey.api.client.UniformInterfaceException: Client response status: 403 at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.handleError(RestClient.java:423) ~[na:na] at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.searchUsers(RestClient.java:282) ~[na:na] at org.sonatype.nexus.plugins.crowd.client.CrowdUserManager.searchUsers(CrowdUserManager.java:160) ~[na:na] at org.sonatype.security.DefaultSecuritySystem.searchUsers(DefaultSecuritySystem.java:499) [nexus-security-2.8.1-01.jar:2.8.1-01] at org.sonatype.security.rest.users.AbstractUserSearchPlexusResource.search(AbstractUserSearchPlexusResource.java:42) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.sonatype.security.rest.users.UserSearchByIdPlexusResource.get(UserSearchByIdPlexusResource.java:94) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:233) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:39) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.resource.Resource.getRepresentation(Resource.java:302) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.resource.Resource.handleGet(Resource.java:464) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Finder.handle(Finder.java:353) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Router.handle(Router.java:504) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:36) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na] at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [nexus-restlet1x-plugin-2.8.1-01/:na] at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Application.handle(Application.java:341) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Router.handle(Router.java:504) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Filter.handle(Filter.java:195) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Router.handle(Router.java:504) [nexus-restlet1x-plugin-2.8.1-01/:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Component.handle(Component.java:676) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.restlet.Server.handle(Server.java:331) [nexus-restlet1x-plugin-2.8.1-01/:na] at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) [nexus-restlet1x-plugin-2.8.1-01/:na] at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) [nexus-restlet1x-plugin-2.8.1-01/:na] at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.sonatype.nexus.restlet1x.internal.RestletServlet.service(RestletServlet.java:90) [nexus-restlet1x-plugin-2.8.1-01/:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.1.10.jar:3.1.10] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [shiro-web-1.2.2.jar:1.2.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.8.1-01.jar:2.8.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.8.1-01.jar:2.8.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.sonatype.nexus.analytics.internal.RestRequestCollector.doFilter(RestRequestCollector.java:82) [nexus-analytics-plugin-2.8.1-01/:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.2.2.jar:1.2.2] at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:73) [nexus-core-2.8.1-01.jar:2.8.1-01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.8.1-01.jar:2.8.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) [metrics-web-2.2.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) [nexus-core-2.8.1-01.jar:2.8.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) [nexus-core-2.8.1-01.jar:2.8.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:70) [nexus-core-2.8.1-01.jar:2.8.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.8.1-01.jar:2.8.1-01] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.8.1-01.jar:2.8.1-01] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60] Caused by: com.sun.jersey.api.client.UniformInterfaceException: Client response status: 403 at com.sun.jersey.api.client.WebResource.handle(WebResource.java:688) ~[na:na] at com.sun.jersey.api.client.WebResource.get(WebResource.java:193) ~[na:na] at org.sonatype.nexus.plugins.crowd.client.rest.RestClient.searchUsers(RestClient.java:273) ~[na:na] ... 124 common frames omitted

Plugin can not sync data automatically when a user group changed

Hi

May I know if the plugin will cache the role information? below is a sample
Given:
user 402917 belong to crowd group "nexus-admins"
"nexus admin role" map to "nexus-admins"
delete user 402917 from "nexus-admins"
Result: user 402917 still have "nexus admin role" permission

May I know how to fix this?

Thanks
Eyck

Plugin doesn't load in Nexus 2.10.0-02

Hi!

I tried to install plugin into Nexus 2.10.0-02. Log has

2014-10-30 15:55:44,337+0400 WARN  [jetty-main-1] *SYSTEM org.sonatype.nexus.NxApplication - Plugin manager request "ACTIVATE" on plugin "com.roumanoff.nexus:nexus-crowd-plugin:2.7.0" FAILED!
The following plugins were processed:
... com.roumanoff.nexus:nexus-crowd-plugin:2.7.0 :: action=ACTIVATE result=BROKEN
       Reason: Problem installing: reference:file:/opt/sonatype-work/nexus/plugin-repository/nexus-crowd-plugin-2.7.0/

How can I debug actual problem?

Log-in with nexus is not working

Dea Patric and other,

I've tried with plugin v2.9.0 with Crowd 2.8 and Nexus Nexus™ 2.11.2-03.
Users are retrieved, privileges derived from group user belongs in Crowd i.e. (Crowd API seems working properly), but user with all possible privileges can not log in.

Some ideas?
I am 1sd day user of Nexus and nexus-crowd-pugin i.e. something trivial may be missing...

Thanks for all kind of constructive advices!
Pranas

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.