Hi, I'm trying to implement an authorization extension to Guacamole.

I'm trying to do this by creating a class that implements this interface in
guacamole-ext:  org/apache/guacamole/net/auth/AuthenticationProvider.

But when I put my .jar file in the extensions directory and bounce Tomcat,
guacamole doesn't load properly and I get this class loader error in
localhost.YYYY-MM-DD.log:

SEVERE: Exception sending context initialized event to listener instance of
class org.glyptodon.guacamole.net.basic.BasicServletContextListener
java.lang.NoClassDefFoundError:
org/apache/guacamole/net/auth/AuthenticationProvider

This happens even before I mention the extension in the properties file.

To get my jarfile right, is there something I have to do beyond setting up
the dependencies as explained in chapter 18 at
http://guacamole.incubator.apache.org/doc/gug/custom-auth.html#idm140538186580816
?

Thanks
Ollie Jones


------------------------------

Here's the full error msg with tracebacks.

Jul 28, 2016 2:50:27 PM org.apache.catalina.core.StandardContext
listenerStart
SEVERE: Exception sending context initialized event to listener instance of
class org.glyptodon.guacamole.net.basic.BasicServletContextListener
java.lang.NoClassDefFoundError:
org/apache/guacamole/net/auth/AuthenticationProvider
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at
org.glyptodon.guacamole.net.basic.extension.Extension.getAuthenticationProviderClass(Extension.java:214)
        at
org.glyptodon.guacamole.net.basic.extension.Extension.getAuthenticationProviderClasses(Extension.java:257)
        at
org.glyptodon.guacamole.net.basic.extension.Extension.<init>(Extension.java:359)
        at
org.glyptodon.guacamole.net.basic.extension.ExtensionModule.loadExtensions(ExtensionModule.java:349)
        at
org.glyptodon.guacamole.net.basic.extension.ExtensionModule.configureServlets(ExtensionModule.java:417)
        at
com.google.inject.servlet.ServletModule.configure(ServletModule.java:53)
        at
com.google.inject.AbstractModule.configure(AbstractModule.java:59)
        at
com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223)
        at com.google.inject.spi.Elements.getElements(Elements.java:101)
        at
com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:133)
        at
com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103)
        at com.google.inject.Guice.createInjector(Guice.java:95)
        at com.google.inject.Guice.createInjector(Guice.java:83)
        at
org.glyptodon.guacamole.net.basic.BasicServletContextListener.getInjector(BasicServletContextListener.java:83)
        at
com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:45)
        at
org.glyptodon.guacamole.net.basic.BasicServletContextListener.contextInitialized(BasicServletContextListener.java:77)
        at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5068)
        at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584)
        at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
        at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
        at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1091)
        at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1980)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException:
org.apache.guacamole.net.auth.AuthenticationProvider
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 40 more

Reply via email to