Spring Cloud 的微服务化后,一般可以使用 Spring Cloud Security 结合 OAuth2.0,生成的 Token 采用 JWT 来验证票据,但 Spring Cloud Security 暂时还不支持 OpenID Connect 协议。Zuul 将自己注册为 Eureka 服务治理下,同时也从 Eureka 服务治理中获得所有其他微服务的实例信息。通过搭建独立的 OAuth2 认证授权服务,将微服务单独剥离出来,这些认证与微服务自己的业务并没有太大的关系,所以这些功能完全可以独立成一个单独的服务存在。独立出来之后,并不是给每个微服务调用(业务服务一般在内网),而是通过 API网关进行统一调用,来对微服务接口做前置过滤,实现对分布式系统中的其他的微服务接口的拦截和安全校验。
创建 Zuul 网关服务Maven
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>