Search code examples
securityauthenticationjbossclassnotfoundexceptionspnego

java.lang.ClassNotFoundException: org.jboss.security.negotiation.NegotiationAuthenticator


While deploying webapp on JBOSS EAP 6.1, I am receiving following error:

Caused by: java.lang.ClassNotFoundException: org.jboss.security.negotiation.NegotiationAuthenticator from [Module "deployment.dummy.ear.dummy-web.war:main" from Service Module Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) [jboss-modules.jar:1.3.0.Final-redhat-2]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443) [jboss-modules.jar:1.3.0.Final-redhat-2]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431) [jboss-modules.jar:1.3.0.Final-redhat-2]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373) [jboss-modules.jar:1.3.0.Final-redhat-2]
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules.jar:1.3.0.Final-redhat-2]
        at org.jboss.as.web.deployment.WarDeploymentProcessor.getInstance(WarDeploymentProcessor.java:407)
        ... 8 more

We are using SPNEGO authentication and jboss-web.xml is configured as:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <context-root>dummy</context-root>
    <security-domain>SPNEGO</security-domain>
    <valve>
        <class-name>org.jboss.security.negotiation.NegotiationAuthenticator</class-name>
    </valve>
    <jacc-star-role-allow>true</jacc-star-role-allow>
</jboss-web>

I found reference to similar question on RedHat portal. But its unanswered. Can you please tell me how to resolve this issue? Please let me know, if you require more information.

Thanks.


Solution

  • Add in WEB-INF/jboss-deployment-structure.xml the next dependency:

    <jboss-deployment-structure>
        <deployment>
            <dependencies>
                <module name="org.jboss.security.negotiation" />
            </dependencies>
        </deployment>
    </jboss-deployment-structure>
    

    See also: https://developer.jboss.org/wiki/DRAFTUsingJBossNegotiationOnAS7 and https://github.com/kwart/spnego-demo

    I hope this help.