当前位置: 首页 > 知识库问答 >
问题:

注销重定向时的Keycloak CORS问题

艾浩广
2023-03-14

我使用Keycloak 10.0.2来确保spring boot REST API的前端和Angular 9。前端由运行在http://localhost:8080上的spring boot微服务提供服务。在keycloak方面,openid-connect客户端web源配置为允许所有源。
spring boot spring安全配置为使用keycloak作为oauth2客户端提供程序。

spring:
  security:
    oauth2:
      client:
        provider:
          keycloak:
            issuer-uri: https://abc-keycloak.abccloud.com/auth/realms/abc
            scope: openid, profile        

        registration:
          keycloak:
            client-id: localhost
            client-secret: xxxxx
            redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
      resourceserver:
        jwt:
          issuer-uri: https://abc-keycloak.abccloud.com/auth/realms/abc

angular前端发出注销API调用http://localhost:8080/logout,并重定向到

 HTTP/1.1 302 Found  Location:
 https://abc-keycloak.abccloud.com/auth/realms/abc/protocol/openid-connect/logout?id_token_hint=xxxxxx
 

我在Google Chrome浏览器中发现了一个CORS错误

CORS策略阻止了在“https://abc-keycloak.abccloud.com/auth/realms/abc/protocol/openid-connect/logout?id_token_hint=xxxxxx&post_logout_redirect_uri=http://localhost:8080”(从“http://localhost:8080/logout”重定向)从origin“http://localhost:8080”访问XMLHttpRequest。

共有1个答案

萧宏峻
2023-03-14

它不应该是API调用(在后台请求)。整个浏览器应该导航到应用程序注销URL(然后导航到Keycloak注销URL)。

 类似资料:
  • 完成注销后,Azure注销页面不会重定向用户。它只返回以下信息: 你注销了你的账户。关闭所有浏览器窗口是个好主意。 我尝试了不同的注销URL,我发现: > https://login.microsoftonline.com/MY_TENANT/oauth2/logout?post_logout_redirect_uri=https://micway.com.au/ https://login.mi

  • 我试过所有的解决办法。我面临两个问题: 注销重定向到无效会话URL 即使在应用程序注销时,会话超时事件仍会在每个设置的时间间隔(例如10分钟)重复发生。这会导致登录页提交操作(登录按钮)重定向到无效会话URL。因此,如果我注销,并尝试在10分钟后登录(这是会话超时间隔),登录页面将再次重定向到login?logout=1(invalid-session-url),而不是登录应用程序。之后,我就可以

  • 这是春虫吗?由于logout-success-url已设置且不安全,因此在到达logout-success-url后,似乎不应将用户重定向到无效的会话url。 日志如下所示:

  • 当我尝试从首页注销时,如果我使用的是管理员用户,我会被重定向到管理员仪表板,如果我使用的是普通用户,我会被重定向到用户帐户页面,我只能从管理员仪表板注销,这是我的注销功能: 中间件认证 中间件重定向 中间件检查角色 路线。php 美元这个-

  • 我试图在react中实现OpenId和oidc客户端js。现在我一直在实现注销功能。 据我所知,我需要设置post\u logout\u redirect\u uri,并使用signoutRedirect()注销用户。注销用户可以正常工作,但遗憾的是,它停留在identity server注销页面。我需要做的是将用户重定向到post\u logout\u redirect\u uri。 有人能告诉

  • 我正在使用带有java配置和两个HttpSecurity配置的spring-security 3.2.0.rc2。一个用于REST API,一个用于UI。当我发布到/logout时,它重定向到/login?logout,但随后(错误地)重定向到/login。当我成功地输入用户名和密码时,我会被重定向到登录-注销,并且必须再次输入凭据才能进入主页面。因此,似乎login的permitAll不被用于l