SpringCloud Zuul代理中的客户令牌中继

2023-12-05 17:25 更新

如果您的应用程序还具有 SpringCloudZuul嵌入式反向代理(使用@EnableZuulProxy),则可以要求它向下游转发OAuth2访问令牌到它正在代理的服务。因此,可以像下面这样简单地增强上面的SSO应用程序:

app.groovy。 

@Controller
@EnableOAuth2Sso
@EnableZuulProxy
class Application {

}

并且它将(除了登录用户并获取令牌之外)还将身份验证令牌传递到/proxy/*服务的下游。如果这些服务是通过@EnableResourceServer实现的,则它们将在正确的标头中获得有效的令牌。

它是如何工作的?@EnableOAuth2Sso注释会插入spring-cloud-starter-security(您可以在传统应用中手动完成此操作),并依次触发ZuulFilter的一些自动配置,该激活本身是因为Zuul位于类路径(通过@EnableZuulProxy)。滤波器 只提取用于下游请求从当前认证的用户的访问令牌,并把它在请求报头。

 Spring Boot不会自动创建refresh_token所需的OAuth2RestOperations在这种情况下,您需要创建自己的OAuth2RestOperations,以便OAuth2TokenRelayFilter可以根据需要刷新令牌。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号