OAuth2 重定向 - oauth2/authorization/oidc

问题描述

我正在尝试使用 Jhipster 微服务设置 (V 6.10.5) 来理解 OAuth2

  1. Jhipster 注册
  2. 使用 --skip-server 生成的网关 UI (Angular)
  3. 使用 --skip-client 生成的网关服务器
  4. 钥匙斗篷。

当我启动所有这些服务时,一切都按预期工作。

我正在查看 Angular 项目,但在我看到的“login.service.ts”文件中找不到任何 oauth2 库,

location.href = `${location.origin}${this.location.prepareExternalUrl('oauth2/authorization/oidc')}`;

但在网关服务器端,我找不到任何将此调用重定向到 Keycloak 登录页面的配置/代码。有人可以帮助我了解此调用重定向的工作原理。

注意:我也用 UI 和服务器一起生成了网关,但代码似乎是一样的。

解决方法

如果您使用反应式 webflux 堆栈,重定向将通过此过滤器完成:

org.springframework.security.oauth2.client.web.server.OAuth2AuthorizationRequestRedirectWebFilter

如果您使用 servlet 堆栈,则重定向是通过过滤器完成的:

org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter