martinspielmann / nexus3-crowd-plugin

Sonatype Nexus plugin for Atlassian Crowd integration
Apache License 2.0
39 stars 15 forks source link

Realm Disappears After Restart #10

Closed ridvan70 closed 7 years ago

ridvan70 commented 7 years ago

Everything works after installing the plugin with bundle:install with karaf, but the plugin and the realm disappears, after restart.

Following exception is seen in the logs: java.lang.ClassNotFoundException: org.sonatype.nexus.crowd.plugin.CrowdAuthenticatingRealm

martinspielmann commented 7 years ago

Unfortunallely i'm not a karaf pro, but from the docs i found so far, this needs to be added as a boot feature. These can be configured in [install_dir]/etc/karaf/org.apache.karaf.features.cfg

I was not able to get the feature starting up without errors at the moment, but i'll try to get this running asap. Any help appreciated

webmutation commented 7 years ago

I run into this problem as well. Not only that the plugin did not install on 3.1... let me know if you need the logs.

martinspielmann commented 7 years ago

Yeah logs may help. Would be great to have them

rhoml commented 7 years ago

I can confirm that this is happening still

2016-11-24 13:25:26,252+1100 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.security.internal.RealmManagerImpl - Unable to lookup security realms
java.lang.ClassNotFoundException: org.sonatype.nexus.crowd.plugin.CrowdAuthenticatingRealm
    at java.lang.ClassLoader.findClass(ClassLoader.java:530) [na:1.8.0_40]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) [na:1.8.0_40]
    at com.google.inject.internal.BytecodeGen$BridgeClassLoader.classicLoadClass(BytecodeGen.java:331) [na:na]
    at com.google.inject.internal.BytecodeGen$BridgeClassLoader.loadClass(BytecodeGen.java:325) [na:na]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) [na:1.8.0_40]
    at org.sonatype.nexus.security.internal.RealmManagerImpl.resolveRealms(RealmManagerImpl.java:221) [org.sonatype.nexus.security:3.1.0.04]
    at org.sonatype.nexus.security.internal.RealmManagerImpl.installRealms(RealmManagerImpl.java:199) [org.sonatype.nexus.security:3.1.0.04]
    at org.sonatype.nexus.security.internal.RealmManagerImpl.doStart(RealmManagerImpl.java:94) [org.sonatype.nexus.security:3.1.0.04]
    at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) [org.sonatype.nexus.common:3.1.0.04]
    at org.sonatype.nexus.security.internal.RealmManagerImpl$$EnhancerByGuice$$eace5892.CGLIB$start$12(<generated>) [4.0:na]
    at org.sonatype.nexus.security.internal.RealmManagerImpl$$EnhancerByGuice$$eace5892$$FastClassByGuice$$b7ace871.invoke(<generated>) [4.0:na]
    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0]
    at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.1.0.04]
    at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [org.sonatype.nexus.common:3.1.0.04]
    at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [org.sonatype.nexus.common:3.1.0.04]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0]
    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0]
    at org.sonatype.nexus.security.internal.RealmManagerImpl$$EnhancerByGuice$$eace5892.start(<generated>) [4.0:na]
    at org.sonatype.nexus.security.internal.DefaultSecuritySystem.doStart(DefaultSecuritySystem.java:115) [org.sonatype.nexus.security:3.1.0.04]
    at org.sonatype.goodies.lifecycle.LifecycleSupport.start(LifecycleSupport.java:104) [org.sonatype.goodies.lifecycle:2.2.1]
    at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:154) [org.sonatype.nexus.extender:3.1.0.04]
    at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:94) [org.sonatype.nexus.extender:3.1.0.04]
    at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:185) [org.sonatype.nexus.extender:3.1.0.04]
    at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) [org.apache.felix.framework-5.4.0.jar:na]
    at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) [org.apache.felix.framework-5.4.0.jar:na]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40]
martinspielmann commented 7 years ago

Finally seems like a found a way to make it work. I'll try to add all findings to the readme and also address #20 I was not able to test in different environments yet... hopefully this work for you too. Commit will follow asap

martinspielmann commented 7 years ago

Please update your setup like described in the updated readme: https://github.com/pingunaut/nexus3-crowd-plugin/blob/master/README.md

After executing the installation instructions, the authorization realm should successfully start during application startup.

ridvan70 commented 7 years ago

Thanks for the enhancment.

I was following the installation instructions and had the following error at start. It seems to be related to com.google.code.gson:gson:jar:2.8.0 (you've removed it recently from pom.xml):

2016-11-26 17:02:08,201+0100 WARN  [pool-16-thread-1] *SYSTEM org.ops4j.pax.url.mvn.internal.AetherBasedResolver - Error resolving artifactcom.google.code.gson:gson:jar:2.8.0:Could not find artifact com.google.code.gson:gson:jar:2.8.0
shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Could not find artifact com.google.code.gson:gson:jar:2.8.0
    at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444) [org.ops4j.pax.url.mvn:2.4.7]
    at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) [org.ops4j.pax.url.mvn:2.4.7]
    at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223) [org.ops4j.pax.url.mvn:2.4.7]
    at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:294) [org.ops4j.pax.url.mvn:2.4.7]
    at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:650) [org.ops4j.pax.url.mvn:2.4.7]
    at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598) [org.ops4j.pax.url.mvn:2.4.7]
    at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:576) [org.ops4j.pax.url.mvn:2.4.7]
    at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:550) [org.ops4j.pax.url.mvn:2.4.7]
    at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:34) [org.apache.karaf.features.core:4.0.5]
    at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:58) [org.apache.karaf.features.core:4.0.5]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_111]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_111]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_111]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_111]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111]
Caused by: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact com.google.code.gson:gson:jar:2.8.0
    at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:434) [org.ops4j.pax.url.mvn:2.4.7]
    ... 16 common frames omitted
2016-11-26 17:02:08,201+0100 WARN  [pool-16-thread-3] *SYSTEM org.ops4j.pax.url.mvn.internal.AetherBasedResolver - Error resolving artifactcom.pingunaut.nexus:nexus3-crowd-plugin:jar:3.1.0-04:Could not find artifact com.pingunaut.nexus:nexus3-crowd-plugin:jar:3.1.0-04
shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Could not find artifact com.pingunaut.nexus:nexus3-crowd-plugin:jar:3.1.0-04
    at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444) [org.ops4j.pax.url.mvn:2.4.7]
    at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) [org.ops4j.pax.url.mvn:2.4.7]
    at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223) [org.ops4j.pax.url.mvn:2.4.7]
    at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:294) [org.ops4j.pax.url.mvn:2.4.7]
    at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:650) [org.ops4j.pax.url.mvn:2.4.7]
    at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598) [org.ops4j.pax.url.mvn:2.4.7]
    at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:576) [org.ops4j.pax.url.mvn:2.4.7]
    at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:550) [org.ops4j.pax.url.mvn:2.4.7]
    at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:34) [org.apache.karaf.features.core:4.0.5]
    at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:58) [org.apache.karaf.features.core:4.0.5]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_111]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_111]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_111]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_111]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111]
Caused by: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact com.pingunaut.nexus:nexus3-crowd-plugin:jar:3.1.0-04
    at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:434) [org.ops4j.pax.url.mvn:2.4.7]
    ... 16 common frames omitted
2016-11-26 17:02:08,213+0100 ERROR [pool-10-thread-1] *SYSTEM org.apache.karaf.features.internal.service.BootFeaturesInstaller - Error installing boot features
org.apache.karaf.features.internal.util.MultiException: Error
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:84) [na:na]
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager.createDownloader(MavenDownloadManager.java:72) [na:na]
    at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:363) [na:na]
    at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:360) [na:na]
    at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:187) [na:na]
    at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:263) [na:na]
    at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1152) [na:na]
    at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:1048) [na:na]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_111]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111]
    Suppressed: java.io.IOException: Error downloading mvn:com.pingunaut.nexus/nexus3-crowd-plugin/3.1.0-04
        at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:67) [na:na]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_111]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_111]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_111]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_111]
        ... 3 common frames omitted
    Caused by: java.io.IOException: Error resolving artifact com.pingunaut.nexus:nexus3-crowd-plugin:jar:3.1.0-04: Could not find artifact com.pingunaut.nexus:nexus3-crowd-plugin:jar:3.1.0-04
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:661)
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:576)
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:550)
        at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:34)
        at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:58)
        ... 7 common frames omitted
    Suppressed: java.io.IOException: Error downloading mvn:com.google.code.gson/gson/2.8.0
        at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:67) [na:na]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_111]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_111]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_111]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_111]
        ... 3 common frames omitted
    Caused by: java.io.IOException: Error resolving artifact com.google.code.gson:gson:jar:2.8.0: Could not find artifact com.google.code.gson:gson:jar:2.8.0
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:661)
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:576)
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:550)
        at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:34)
        at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:58)
        ... 7 common frames omitted
    Suppressed: java.io.IOException: Error downloading mvn:com.google.code.gson/gson/2.8.0
        at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:67) [na:na]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_111]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_111]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_111]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_111]
        ... 3 common frames omitted
    Caused by: java.io.IOException: Error resolving artifact com.google.code.gson:gson:jar:2.8.0: Could not find artifact com.google.code.gson:gson:jar:2.8.0
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:661)
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:576)
        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:550)
        at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:34)
        at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:58)
        ... 7 common frames omitted
martinspielmann commented 7 years ago

Argh. Thank you for the detailed stacktrace. I'm trying to reproduce that. Might take some days unfortunatelly :(

ridvan70 commented 7 years ago

Just a hint: you have removed

<Import-Package>*,!com.google.code.gson</Import-Package>

in your commit: https://github.com/pingunaut/nexus3-crowd-plugin/commit/a066ea815b8934ea01e6c1c8826b58ac18d89308

martinspielmann commented 7 years ago

Unbelievable -.-' Didn't have any effect on my machine. Maybe i was working with an outdated jar. Import-Package is now added again. Thanks again @ridvan70

martinspielmann commented 7 years ago

@ridvan70 is this solved with #21 ?

ridvan70 commented 7 years ago

Yes, this issue has been solved by the feedbacks in #21

martinspielmann commented 7 years ago

Perfect... finally 👍 I would like to add a contributors file to the repo. Would you like to be added with your nickname @ridvan70 or your real name?

ridvan70 commented 7 years ago

Choose your favorite one :)