【发布时间】:2016-12-10 09:33:19
【问题描述】:
我为这个错误挣扎了一整天。我一遍又一遍地检查我在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>
Keycloak 控制台配置:
我创建了一个名为 csf-admin 的用户,并将角色“admin”和“user”分配给 csf-admin
然后
1)在linux.1上使用broswer访问linux.3上部署在TOMCAT中的APP(用户https)
2)我的浏览器可以打开 Keycloak Auth 页面(用户 https , keycloak on linux.2)
3) 以 csf-admin 身份登录 keycloak
4)Keycloak 将我重定向到 APP url (使用 https)
5)HTTP 403“对指定资源的访问已被禁止。”出现
我真的不知道根本原因.....需要你的帮助.....
【问题讨论】:
-
顺便说一句,如果我禁用 Keycloak ,我可以使用 https 访问 linux.2 上 APP 的整个资源
-
Tomcat Catalina.out 报告错误信息:[Aug 05, 2016 3:39:12 AM org.keycloak.adapters.OAuthRequestAuthenticator resolveCode ERROR: failed to turn code into token] 我添加 ["disable -trust-manager": true] 在 APP/WEB-INF/keycloak.json 中不起作用!
-
我知道这是旧的,但是:你有这方面的日志吗?我现在正在处理一个类似的问题,看起来服务器正在发送一个 301(重定向),这导致了问题。
-
对此有任何更新,我面临着类似的问题。
标签: java tomcat jboss single-sign-on keycloak