【发布时间】:2021-02-19 02:46:54
【问题描述】:
我正在使用 Keycloak 10.0.2 来保护 Spring Boot REST API 和 Angular 9 的前端。
前端由运行在 http://localhost:8080 上的 Spring Boot 微服务提供服务。
在 keycloak 端,openid-connect 客户端 Web 源配置为允许所有源。
Spring Boot Spring Security 配置为使用 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 错误
访问 XMLHttpRequest 在 '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') “http://localhost:8080”已被 CORS 策略阻止:响应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
【问题讨论】:
标签: spring-boot keycloak spring-security-oauth2