web-dev-qa-db-ja.com

KeyCloakサーバーが原因:Java.lang.ClassNotFoundException:Java.security.acl.Group at

KeyCloakサーバーを実行して、SpringBoot-Web RestAPIにアクセスしたいユーザーを認証しています。ただし、認証しようとするとエラーが発生します。

次の作品:

ホワイトラベルエラーページこのアプリケーションには/ errorの明示的なマッピングがないため、これはフォールバックと見なされます。

Spring-Boot出力コンソールでのエラー:

Caused by: Java.lang.ClassNotFoundException: Java.security.acl.Group
    at Java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.Java:602) ~[na:na]
    at Java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.Java:178) ~[na:na]
    at Java.base/Java.lang.ClassLoader.loadClass(ClassLoader.Java:522) ~[na:na]
    ... 33 common frames omitted

KeyCloakサーバーは、アプリケーションに対するユーザーのセッションがアクティブであることを示しています。ただし、上記のクラスがないため、認証プロセスは完了しません。

3

いくつかの調査の後、私は自分の問題に対する答えを見つけました。

問題は、Java.security.acl.GroupがJRE 9以降廃止されており、将来のバージョンで削除されるようにマークされていることです。

Java.security.acl.GroupはJava.security.Policyに置き換えられます

私は、このクラスが利用できなくなったように見えるJRE 14でSpring-Bootアプリケーションを実行していました。

したがって、JRE 11を使用するようにSpring-bootアプリケーション(REST-APIをホストする)を変更すると、エラーは解消しました。

注:pom.xml Java version attibute <Java.version>11</Java.version>変更する必要があり、EclipseのビルドパスのJDK(IDE私が使用しています) JDKビルドパス

8

同じ問題に出くわした。

ちなみに、こちらのkeycloak issue trackerで報告されています: https://issues.redhat.com/browse/KEYCLOAK-1369

キークローク11で修正する必要があります。

2
Stéphane