wildfly与keycloak 403的集成禁止错误

时间:2016-02-29 08:30:07

标签: ssl wildfly web.xml keycloak

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

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

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

4 个答案:

答案 0 :(得分: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 :(得分:1)

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

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

GoDaddy certificate issue example

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我将范围更改为完整范围,但登录后仍显示“禁止访问” ... enter image description here