AWS SDK getting Uncaught server error: java.lang.NoClassDefFoundError

Hi guys!

We are implementing simple custom authenticator. This is a post authenticator that checks if the user’s email exists in our Dynamodb running in the cloud.

When the post authentication triggers. We are getting this error:

09:29:31,566 ERROR [org.keycloak.services.error.KeycloakErrorHandler] (default task-5) Uncaught server error: java.lang.NoClassDefFoundError: software/amazon/awssdk/enhanced/dynamodb/TableSchema

This is how our pom file looks like.

   
    <properties>
        <keycloak.version>15.0.2</keycloak.version>
        <jboss-jaxrs-api_2.1_spec>2.0.2.Final</jboss-jaxrs-api_2.1_spec>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>software.amazon.awssdk</groupId>
                <artifactId>bom</artifactId>
                <version>2.17.117</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>dynamodb-enhanced</artifactId>
            <version>2.11.4-PREVIEW</version>
        </dependency>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>dynamodb</artifactId>
        </dependency>
        <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-server-spi</artifactId>
            <version>${keycloak.version}</version>
        </dependency>
        <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-server-spi-private</artifactId>
            <version>${keycloak.version}</version>
        </dependency>
        <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-core</artifactId>
            <version>${keycloak.version}</version>
        </dependency>
        <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-services</artifactId>
            <version>${keycloak.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.ws.rs</groupId>
            <artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
            <version>${jboss-jaxrs-api_2.1_spec}</version>
        </dependency>
    </dependencies>

We tried to use the shade plugin as suggested here.

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-shade-plugin</artifactId>
	<executions>
		<execution>
			<phase>package</phase>
			<goals>
				<goal>shade</goal>
			</goals>
			<configuration>
				<artifactSet>
					<includes>
					</includes>
				</artifactSet>
			</configuration>
		</execution>
	</executions>
</plugin>

But it does not work for us. We are getting a new error instead.

16:28:29,950 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "pst-amt-keycloak-authenticator.jar")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"pst-amt-keycloak-authenticator.jar\".STRUCTURE" => "WFLYSRV0153: Failed to process phase STRUCTURE of deployment \"pst-amt-keycloak-authenticator.jar\"
    Caused by: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes"}}

Please advise. Thank you!

Best,
Carl