我正在尝试将KeyCloak Spring Security适配器集成到一个应用程序中,但我看到这样的例外:
Exception: java.lang.NoSuchMethodError: org.keycloak.adapters.PreAuthActionsHandler.<init>(Lorg\/keycloak\/adapters\/spi\/UserSessionManagement;Lorg\/keycloak\/adapters\/AdapterDeploymentContext;Lorg\/keycloak\/adapters\/spi\/HttpFacade;)V\n\tat org.keycloak.adapters.springsecurity.filter.KeycloakPreAuthActionsFilter.doFilter(KeycloakPreAuthActionsFilter.java:80)
我该如何解决这个问题?
答案 0 :(得分:1)
这里的问题是我正在部署Spring应用程序的Wildfly服务器已经启用了KeyCloak子系统(使用更旧版本的KeyCloak)来处理传统的servlet授权。我的Spring应用程序遇到了与Wildfly配置的旧版KeyCloak相关的类加载问题以及弹簧安全适配器的新版本。
解决方案是在jboss-deployment-structure.xml文件中用我的Spring应用程序排除keycloak子系统:
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="keycloak"/>
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>