我已将Keycloak
设置为使用SAML2.0的SSO的IdP。我已经在Keycloak
用所需的URL注册了我的客户:主SAML处理URL:http://localhost:8085/myapp/saml
尽管设置了主URL并不是必须的:我将http://localhost:8085/myapp/saml和ACS URL POST Binding
都设置为:Logout URL POST Binding
http://localhost:8085/myapp/saml
http://localhost:8085/myapp/saml
[当我尝试访问受保护的资源时,即形式为URLRoot URL:
,http://localhost:8085/myapp
将我重定向到其登录页面。现在,成功登录后,如果在我的ACS URL上出现点击,我尝试将页面重定向到受保护的资源之一。这样做:http://localhost:8085/myapp。
现在,Keycloak再次将我重定向到登录页面,然后陷入无限循环。
我的http://localhost:8085/myapp/protected/*
配置为:
http://localhost:8085/myapp/protected/
--有些人通过以我已经拥有的Keycloak
结束主URL来解决它。-我还尝试将resp.sendRedirect("http://localhost:8085/myapp/protected/home.html");
放在ACS URL的末尾,但没有任何效果
我浏览了Keycloak日志以找到web.xml
。就我而言, <filter>
<filter-name>Keycloak Filter</filter-name>
<filter-class>org.keycloak.adapters.saml.servlet.SamlFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Keycloak Filter</filter-name>
<url-pattern>/protected/*</url-pattern>
</filter-mapping>
和/saml
(客户端)位于不同的计算机上。错误的区别是它们的系统时间在不同的时区中。
SP根据其时区在UTC中创建/rest
,并且Your are already logged in
根据不同时区在UTC中创建。
因此,保持相同的时区解决了该问题。