小编ZOU*_*uan的帖子

使用Keycloak保护Tomcat应用程序时出现HTTP 403禁止错误

我为这个错误苦苦挣扎了一整天。我一遍又一遍地检查我在tomcat中Keycloak和APP的配置,没有发现错误。

下图为测试场景:

在此输入图像描述

APP配置:

1.Keycloak.json是从Keycloak控制台复制的

2.context.xml 也正确,因为它在“localhost”场景下工作正常

3.web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">

    <module-name>Keycloak-Tomcat-App</module-name>

<!--
<security-constraint>
    <web-resource-collection>
        <web-resource-name>init pages</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>user</role-name>
    </auth-constraint>
</security-constraint>
-->

<security-constraint>
    <web-resource-collection>
        <web-resource-name>All roles pages</web-resource-name>
        <url-pattern>/roles/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>this is ignored currently</realm-name>
</login-config>

<security-role>
    <role-name>admin</role-name>
</security-role>
<security-role>
    <role-name>user</role-name>
</security-role>
Run Code Online (Sandbox Code Playgroud)

Keycloak控制台配置:

我创建一个名为 csf-admin 的用户,并将角色“admin”和“user”分配给 csf-admin

然后

1)在linux.1上使用broswer访问linux.3上部署在TOMCAT中的APP(用户https)

2)我的浏览器可以打开Keycloak认证页面(用户https,linux.2上的keycloak)

3)以csf-admin身份登录keycloak

4)Keycloak将我重定向到APP url(使用https)

5)HTTP 403“已禁止访问指定资源。” 到场

我真的不知道根本原因......需要你的帮助......

java jboss tomcat single-sign-on keycloak

5
推荐指数
1
解决办法
7121
查看次数

标签 统计

java ×1

jboss ×1

keycloak ×1

single-sign-on ×1

tomcat ×1