我为这个错误苦苦挣扎了一整天。我一遍又一遍地检查我在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)
我创建一个名为 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“已禁止访问指定资源。” 到场
我真的不知道根本原因......需要你的帮助......