【问题标题】:Keycloak jetty adapter cannot be installed in Apache KarafApache Karaf 中无法安装 Keycloak 码头适配器
【发布时间】:2020-06-01 05:56:45
【问题描述】:

我使用 Apache Karaf 4.2.8。我安装了 keycloak osgi 功能。我可以使用 keycloak-jaas 功能为带有 keycloak 的 karaf shell 配置身份验证。

现在我想在 /cxf 上下文下为我的服务配置身份验证。

我配置了 pax-web 上下文,所以 login-method 是 KEYCLOAK。

但我还必须安装 keycloak-jetty-adapter,以便可以集成。但是当我尝试安装该功能时,我收到一个错误。

trun()> feature:install keycloak-jetty9-adapter

org.apache.felix.resolver.reason.ReasonException:无法解析 root: 缺少需求 [root] osgi.identity; osgi.identity=keycloak-jetty9-适配器;类型=karaf.feature; 版本="[8.0.1,8.0.1]"; filter:="(&(osgi.identity=keycloak-jetty9-adapter)(type=karaf.feature)(version>=8.0.1)(version=8.0.1)(version

如果不安装该适配器,则我无法访问我的服务(我收到 403 Forbidden),因为它受 pax-web 保护,但无法进行身份验证。

似乎karaf中的jetty是嵌入的,并且不包含所有功能,这不允许我安装jetty适配器。

【问题讨论】:

    标签: jetty keycloak apache-karaf


    【解决方案1】:

    根据release notes for Apache Karaf 4.2.8,Karaf 使用的是 Jetty 9.4.22,这似乎超出了错误消息version="[9.2.0,9.3.0)" 中的范围

    您需要将 Keycloak 升级到支持 Jetty 9.4.x 的版本 或将 Karaf 降级为支持 Keycloak 使用的同一版本的 Jetty。

    【讨论】:

    • 你是对的。我还检查了 features.xml 中的 keycloak,它只支持 9.2 和 9.3。实际上,keycloak 中有一部分是针对 9.4 的。但由于某种原因,它被评论了,这就是为什么不可用。 github.com/keycloak/keycloak/blob/8.0.1/distribution/adapters/…由于您的回答是当前失败的原因,因此,我将其作为解决方案提及。我希望 keycloak 会在某个时候取消注释功能中的那部分代码。
    猜你喜欢
    • 2014-08-18
    • 1970-01-01
    • 2014-11-01
    • 2017-01-19
    • 2019-03-31
    • 1970-01-01
    • 2015-05-29
    • 2020-05-28
    • 1970-01-01
    相关资源
    最近更新 更多