/ / Come risolvere "java.lang.NoSuchMethodError: org.keycloak.adapters.PreAuthActionsHandler" in primavera? - primavera, wildfly, chiave di mano

Come posso risolvere "java.lang.NoSuchMethodError: org.keycloak.adapters.PreAuthActionsHandler" in primavera? - primavera, wildfly, chiave di mano

Sto cercando di integrare l'adattatore KeyCloak Spring Security in un'applicazione, ma vedo eccezioni come questa:

Exception: java.lang.NoSuchMethodError: org.keycloak.adapters.PreAuthActionsHandler.<init>(Lorg/keycloak/adapters/spi/UserSessionManagement;Lorg/keycloak/adapters/AdapterDeploymentContext;Lorg/keycloak/adapters/spi/HttpFacade;)Vntat org.keycloak.adapters.springsecurity.filter.KeycloakPreAuthActionsFilter.doFilter(KeycloakPreAuthActionsFilter.java:80)

Come posso risolvere questo?

risposte:

1 per risposta № 1

Il problema qui era che il server Wildfly erola distribuzione dell'applicazione Spring aveva già abilitato il sottosistema KeyCloak (con una versione più vecchia di KeyCloak) per gestire l'autorizzazione del servlet tradizionale. La mia app di Spring stava avendo problemi di caricamento di classe relativi a una vecchia versione di KeyCloak configurata in Wildfly e una nuova versione dell'adattatore di sicurezza Spring.

La soluzione era escludere il sottosistema keycloak dalla mia app Spring con questo nel file jboss-deployment-structure.xml:

<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="keycloak"/>
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>