web-dev-qa-db-fra.com

KeyCloak Server Causé par: Java.lang.ClassNotFoundException: Java.security.acl.Group at

J'exécute un serveur KeyCloak pour authentifier les utilisateurs qui souhaitent accéder à un SpringBoot-Web RestAPI. Cependant, une erreur se produit lors de la tentative d'authentification.

Les travaux suivants:

Page d'erreur Whitelabel Cette application n'a pas de mappage explicite pour/error, vous voyez donc cela comme une solution de secours.

Erreur sur ma console de sortie 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

Le serveur KeyCloak montre que la session est active pour l'utilisateur de l'application. Cependant, le processus d'authentification n'est jamais terminé en raison de la classe manquante ci-dessus.

3
Reinhard Behrens

Après quelques recherches, j'ai trouvé la réponse à mon problème.

Le problème est que Java.security.acl.Group est obsolète depuis JRE 9 et marqué pour suppression dans les versions futures.

Java.security.acl.Group est remplacé par Java.security.Policy

J'exécutais mon application Spring-Boot sur JRE 14 dans lequel cette classe ne semblait plus disponible.

Donc, une fois que j'ai changé mon application Spring-boot (qui héberge l'API REST) ​​pour utiliser JRE 11, l'erreur a disparu.

Remarque: Le pom.xml Java version attibute <Java.version>11</Java.version> nécessaire pour changer ainsi que le JDK dans le chemin de construction dans Eclipse (qui est le IDE que j'utilise) JDK Buildpath

8
Reinhard Behrens

Ran dans le même problème.

À propos, il est signalé dans le suivi des problèmes de keycloak ici: https://issues.redhat.com/browse/KEYCLOAK-1369

Doit être corrigé dans Keycloak 11.

2
Stéphane