JBoss 没有重定向到 Keycloak

Posted

技术标签:

【中文标题】JBoss 没有重定向到 Keycloak【英文标题】:JBoss not redirecting to Keycloak 【发布时间】:2019-08-06 08:54:59 【问题描述】:

我有 JBoss EAP 7

所以我已经完成了:

unzip keycloak-eap7-adapter-dist-3.2.1.Final.zip

./bin/jboss-cli.sh --file=adapter-install-offline.cli

并将<security-constraint> 元素添加到web.xml:

<security-constraint>
        <web-resource-collection>
            <web-resource-name>Admins</web-resource-name>
            <url-pattern>/admin/*</url-pattern>
        ...

<security-role>
        <role-name>admin</role-name>
...

在我的standalone.xml 中,我有:

<subsystem xmlns="urn:jboss:domain:keycloak:1.1">
            <secure-deployment name="snack.war">
                <realm>Netzportal</realm>
                <resource>netzportal</resource>
                <public-client>true</public-client>
                <auth-server-url>http://localhost:8180/auth</auth-server-url>
                <ssl-required>EXTERNAL</ssl-required>
            </secure-deployment>
        </subsystem>

在 keycloak 管理控制台中,我已将 Web 应用程序注册为客户端。客户端在http://localhost:10080/czo/login.xhtml 打开。所以我输入http://localhost:10080/czo/*Valid Redirect URIs

但是当应用程序正在运行并且我打开 http://localhost:10080/czo/login.xhtml 时,我不会被重定向到 keycloak(它也在运行)

【问题讨论】:

【参考方案1】:

您似乎缺少以下条目(因为它没有出现在您列出的 web.xml 配置中),它实际上告诉了要使用哪种身份验证来登录

<login-config>
   <auth-method>KEYCLOAK</auth-method>
   <realm-name>Netzportal</realm-name>
</login-config>

有关配置的更多详细信息,请查看docs。

【讨论】:

链接文档中的这一段不是表明他不应该这样做吗? (抱歉,如果 2 年前是真的)您不必修改 WAR 以使用 Keycloak 保护它。相反,您可以通过 Keycloak 适配器子系统从外部保护它。虽然您不必将 KEYCLOAK 指定为身份验证方法,但您仍然必须在 web.xml 中定义安全约束。

以上是关于JBoss 没有重定向到 Keycloak的主要内容,如果未能解决你的问题,请参考以下文章

如何将角度应用程序从keycloak登录重定向到特定路线

无需重定向到 Keycloak 的客户端身份验证

重定向到登录时的 Keycloak CORS 问题

为啥 Spring Boot 不会重定向到 403 上的 Keycloak 登录页面?

在 keycloak 中,如何使用 kc_idp_hint 重定向到 IDP?

Dokku keycloak 重定向过多