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
可以根据需要刷新令牌。
以上内容是否对您有帮助:
更多建议: