说明:统一认证入口是客户端
所有访问微服务的请求都要经过网关,在网关进行用户身份的**认证(检验是否登录)**可以将很多非法的请求拦截到微服务以外,这叫做网关认证。
网关的职责:
1、网站白名单维护
针对不用认证的URL全部放行。
2、校验jwt的合法性。
除了白名单剩下的就是需要认证的请求,网关需要验证jwt的合法性,jwt合法则说明用户身份合法,否则说明身份不合法则拒绝继续访问。
网关负责授权吗?
网关不负责授权,对请求的授权操作在各个微服务进行,因为微服务最清楚用户有哪些权限访问哪些接口。
实现网关认证
- 网关工程添加依赖
<!-- 下面这两个是重点-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
-
在config包下添加相关配置类,查看Spring Security相关代码
-
配置白名单文件,查看Spring Security相关代码
Spring Security相关代码
- 配置白名单文件,查看Spring Security相关代码