wildfly与keycloak 403的集成禁止错误

问题描述 投票:3回答:4

我有一个与keycloak集成的应用程序。该应用程序在wildfly服务器上运行。我使用web.xml来验证keycloak(作为Login config)。除此之外,我使用keycloak.json文件,我在应用程序中定义keycloak领域设置。当我调用应用程序页面时,keycloak登录页面打开,在输入凭据后,它返回到wildfly,出现403 forbidden错误。

以前,相同的设置工作,但现在启用ssl后,我正面临这个问题。

请帮我解决问题,是否需要ssl的任何其他额外设置。

ssl wildfly web.xml keycloak
4个回答
3
投票

如果启用SSL后登录失败的情况,那将是因为SSL证书不在信任库中,您可能会遇到此异常javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

为此,您可以通过在keycloak.json中添加以下conf来禁用信任管理器

  {
    ...
    "disable-trust-manager": true
  }

如果这解决了问题,那么正确的方法是将证书添加到信任库并在keycloak.json文件中指定它。

 {
    ...
    "truststore": "cacerts.jks",
    "truststore-password" : "password"
  }

1
投票

由于设置在没有SSL的情况下工作,因此与范围相关的问题可能不会导致403错误。相反,可以首先测试通过IDP HTTPS端口从客户端应用程序服务器到IDP服务器的连接(可以使用telnet)。

否则,它可能是SSL证书验证问题,正如@Shiva所回答的那样。只是为了添加它,理想情况下,有效的CA证书可能不会产生信任问题。在这种情况下,可以检查支持的IDP证书CA的浏览器和Java版本。只需升级到最新的Java版本或将CA的根证书添加到默认信任库即可解决此类问题。这不需要对keycloak.json文件进行任何更改。

GoDaddy certificate issue example

P.S:由于我无法添加评论,所以在这里添加了这些要点。


0
投票

问题出在keycloak配置上。为我的应用程序创建的角色没有范围。将角色启用到完整范围后,问题得到解决。


0
投票

我将范围更改为完整范围,但在登录后仍然获得Forbidden ... enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.