【发布时间】:2022-12-15 01:03:27
【问题描述】:
我创建了一个 IT 解决方案,包括:
- 包含 2 个客户端应用程序的 Angular 前端
- 2 个 API,基于 Java
- 第三方授权服务器(单点登录)
我使用 Spring security oauth2 (OIDC) 库进行身份验证。 2 个 Angular 客户端使用两个 API 并使用相同的客户端 ID 和密码。如果用户登录到第一个客户端应用程序,他们应该不是系统会提示您再次登录第二个客户端应用程序。
基本上这工作正常,但即使用户已经登录,第二个客户端应用程序也会尝试连接到授权端点。此外,当第二个客户端尝试访问授权端点时,会引发 CORS 异常。
我认为第二个客户端应该能够在不再次通过授权/令牌端点的情况下获取用户信息。上述方法是否正确?并且:我应该如何使用 Spring Security Oauth2 库处理这种情况(涉及 2 个或更多具有相同客户端 ID 和密码的客户端后端 Java 应用程序)?如何从第二个客户端应用程序获取用户信息?
当我尝试上述操作时,第二次 API 调用导致以下错误(成功登录后第一次 API 调用成功):
Retrieving domain category:
:8082/review-web/app/home:1 Access to XMLHttpRequest at 'https://gateway.cert.auth.com/affweb/CAS/oidc/EXTERNAL_v0/**authorize?**response_type=code&client_id=596346&scope=openid%20profile%20credential_data%20email&state=wmy3woFyTjrbhyE2aHXLrpFSEnbXnUG4rcx4pdcSZso%3D&redirect_uri=https://dev.local.com:8083/core-api/app/login/oauth2/code/core-api-client&nonce=ridDePx0JMeSv4qJkvv74xkV5ev-lvVMb7inhG8wzBs' (redirected from 'https://dev.local.com:8083/core-api/app/api/all/category') from origin 'https://dev.local.com:8082' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
【问题讨论】:
标签: angular spring-boot spring-security cors spring-security-oauth2