gpt4 book ai didi

java - 使用 org.keycloak.authentication.authenticators.broker.util 中的类时,提供程序 jar 中出现 NoClassDefFoundError

转载 作者:行者123 更新时间:2023-11-30 05:30:00 26 4
gpt4 key购买 nike

我正在为 keycloak 编写一个身份 validator 提供程序,我将其打包为 .jar。一旦它使用 keycloak-services 中的类,我就会收到 NoClassDefFoundError。通过“mvn wildfly:deploy”部署提供程序时,我收到相同的错误。

我一定错过了一些东西,但我很少写java代码,而且我现在一无所知。

我在 pom.xml 中定义了依赖项,并尝试了“提供”和“编译”作为范围:

    <dependencies>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
<scope>provided</scope>
<version>${keycloak.version}</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-server-spi</artifactId>
<scope>provided</scope>
<version>${keycloak.version}</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-server-spi-private</artifactId>
<scope>provided</scope>
<version>${keycloak.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<scope>provided</scope>
<version>3.1.4.GA</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-services</artifactId>
<scope>provided</scope>
<version>${keycloak.version}</version>
</dependency>
</dependencies>

将以下代码添加到身份验证函数后,我立即收到错误:

    AuthenticationSessionModel authSession = context.getAuthenticationSession();
SerializedBrokeredIdentityContext serializedCtx =
SerializedBrokeredIdentityContext.readFromAuthenticationSession(
authSession, "BROKERED_CONTEXT");

我得到的错误:

20:05:03,844 ERROR [org.keycloak.services.error.KeycloakErrorHandler] (default task-6) Uncaught server error: java.lang.NoClassDefFoundError: org/keycloak/authentication/authenticators/broker/util/SerializedBrokeredIdentityContext

最佳答案

因为 Wildfly 隔离了类加载器,所以我必须在 META-INF/MANIFEST.MF 文件中声明依赖项。

为此,我将以下代码添加到我的 pom.xml 文件中:

            <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Dependencies>org.keycloak.keycloak-services</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>

(keycloak用户列表上给了我解决方案:https://lists.jboss.org/pipermail/keycloak-user/2019-September/019108.html)

关于java - 使用 org.keycloak.authentication.authenticators.broker.util 中的类时,提供程序 jar 中出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57778240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com