SpringCloud Zuul代理中的客户令牌中继
如果您的应用程序还具有
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可以根据需要刷新令牌。