使用 Kotlin 时 Keycloak 提供程序不起作用

Keycloak provider does not work when using Kotlin

Keycloak 示例身份验证提供程序(秘密问题身份验证器)从 Java 转换为 Kotlin 时, 插件不起作用更多。部署 Jar 文件时,log 会引发奇怪的错误,例如签名错误。就我而言,问题是 Kotlin 运行时库。有办法解决这个问题吗?

问题在于 Kotlin 具有依赖项(Kotlin StdLib 或 AKA Kotlin 运行时)。 尽管有很多文档和答案,但解决方案并不是通过 gradle 构建脚本下面的著名行来制作(所谓的)Fat JAR。解决依赖关系的正确方法是使用 CLI 或手动方法将它们添加为 WildFly (JBoss) 模块。

module add --name=org.jetbrains.kotlin --dependencies=org.jetbrains --resources=<path-to-jar-file>
module add --name=org.jetrains --rsources=<path-to-jar-file>

之后,我们可以在META-INF目录下的一个特殊的JBoss文件中添加jboss-deployment-structure.xml:

<jboss-deployment-structure>
<deployment>
    <dependencies>
        <module name="org.jetbrains.kotlin" />
    </dependencies>
</deployment>

现在 jar 已成功部署并运行!