创建gateway数据库,执行doc/gateway.sql 。
执行doc/nacos.sql 插入nacos配置数据(如不想使用nacos配置中心,则使用/microservice-integration-gateway/resource中 dev1的配置 即可)
访问地址:
localhost:3000
网关地址:
localhost:4000
通过网关访问:
localhost:4000/app/no
二、网关后台 microservice-integration-admin
进入microservice-integration-admin目录
1.安装node yarn npm
2.执行 yarn 安装依赖
3.执行 npm run dev 启动测试环境
验证码使用 谷歌 recaptcha-v3 的vue插件
vue-recaptcha-v3
https://developers.google.com/recaptcha/docs/v3
对应 /src/main.js中相应代码
访问地址:
localhost:9528
登录用户名密码随意填写
2.0.6.RELEASE
Finchley.SR2
https://nacos.io/zh-cn/docs/what-is-nacos.html
https://cloud.spring.io/spring-cloud-gateway/single/spring-cloud-gateway.html
https://cloud.spring.io/spring-cloud-openfeign/2.0.x/single/spring-cloud-openfeign.html
https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.1.0.M1/single/spring-cloud-netflix.html
`
https://github.com/PanJiaChen/vue-admin-template/blob/master/README-zh.md
eureka注册中心
测试应用app
应用鉴权
springcloud-gateway 网关
网关后台管理
-
服务通过网关访问,首先走GatewayServiceManagerAuthorizationFilter鉴权过滤器,先查询服务是否注册,未注册返回未授权应用。
-
根据不同鉴权配置,访问auth应用
-
路由到配置的应用系统
1.服务管理
例如app应用,有多个服务 。
microservice-integration-app=microservice-integration-app
有三个服务
@GetMapping("/info")
@GatewayInfo(name="获取app信息",authorization = AuthorizationEnum.SERVER)
public ResponseResult getAppInfo(){
return ResponseResult.success("appInfo");
}
@PostMapping("/list")
@GatewayInfo(name="获取app list",authorization = AuthorizationEnum.LOGIN)
public ResponseResult getList(){
return ResponseResult.success(Lists.newArrayList(1,2,3));
}
@GetMapping("/no")
@GatewayInfo(name="不需要鉴权",authorization = AuthorizationEnum.NO)
public ResponseResult no(){
return ResponseResult.success(Lists.newArrayList(4,5,6));
}
服务配置注解,依赖microservice-integration-gateway-report 服务启动会上报服务到网关,没有声明鉴权注解默认不鉴权,直接可以访问
@GatewayInfo(name="不需要鉴权",authorization = AuthorizationEnum.NO)
鉴权方式枚举
public enum AuthorizationEnum {
NO(0,"不鉴权"),
LOGIN(1,"用户登录"),
SERVER(2,"服务端鉴权");
}
2.路由 2.1 配置路由管理
例如服务app应用名称为
microservice-integration-app=microservice-integration-app
如图:
如使用注册中心,则目标uri为lb://${应用名称}
2.2 配置断言列表
配置拦截路径 选择所属路由,如图 /app/** 则拦截 /app/** 所有请求 —> 所属路由的 目标uri
如上如配置完成后即可通过网关访问app 应用服务
如网关地址 http://127.0.0.1:4000/
app应用访问地址为 http://127.0.0.1:4000/app/**
如图:
2.自定义服务管理
服务上报 ,依赖microservice-integration-gateway-report后
通过 @GatewayInfo(name="获取app信息",authorization = AuthorizationEnum.SERVER)
启动时向gateway 上报 应用服务信息。