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.
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
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.