如何修复Spring中的“java.lang.NoSuchMethodError:org.keycloak.adapters.PreAuthActionsHandler”?

时间:2017-01-18 04:08:03

标签: spring wildfly keycloak

我正在尝试将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)

我该如何解决这个问题?

1 个答案:

答案 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>