第8节-网关怎么实现多系统权限隔离?

本节介绍怎么网关怎么实现多系统权限隔离。例如:有2个微服务demodemo2,都有自己的用户权限信息,怎么使用同一个网关进行权限的隔离?

1. 修改微服务demo

在微服务wueasy-cloud-demo中,增加业务key,区分不同的业务。

wueasy :
  gateway:
    session:
      business-key: demo1 #业务key

2. 新增一个微服务demo2

拷贝一份wueasy-cloud-demo创建一个新的微服务2

2.1 修改服务端口号

避免微服务端口号重复,这里修改为8081

server : 
  port : 8081  #服务端口号

2.2 修改服务端口号

这里的微服务名称为demo2

spring:
  application:
    name: demo2

2.3 修改微服务业务key

在微服务wueasy-cloud-demo2中,增加业务key,区分不同的业务。

wueasy :
  gateway:
    session:
      business-key: demo2 #业务key

3. 修改网关

3.1 增加微服务2路由

如下面配置,通过/demo/**访问demo微服务,通过/demo2/**访问demo2微服务

spring:
  cloud:
    gateway:
      discovery: 
        locator: 
          enabled: false
          lowerCaseServiceId: true
      routes: 
      - id: demo 
        uri: lb://DEMO
        predicates: 
        - Path=/demo/**
        filters:
        - StripPrefix= 1
      - id: demo2
        uri: lb://DEMO2
        predicates: 
        - Path=/demo2/**
        filters:
        - StripPrefix= 1

3.2 修改session配置

指定不同的url地址,配置不同的business-key,配置参考session使用

wueasy :
  gateway:
    session: #session配置
      type: redis #类型
      redis-auto-expire: true #是否自动延期过期时间,默认true
      expire: 1h #过期时间
      items:
      - urls: #服务1
        - /demo/**
        token-name: token
        business-key: demo1
      - urls: #服务2
        - /demo2/**
        token-name: token
        business-key: demo2

4. 启动服务

分别启动 注册中心、微服务demo、微服务demo2、网关

5. 测试接口

5.1 微服务1登录

  • 接口地址:http://127.0.0.1:8088/demo/login
  • 请求类型:POST
  • 请求参数:
    {
      "accountNo":"admin",
      "password":"123456"
    }
    
  • 成功示例:
    {
      "errorNo": 0,
      "data": "demo1:1:35c8538dcfefab00d574cf2a48e93f96"
    }
    

5.2 微服务1验证接口

  • 接口地址:http://127.0.0.1:8088/demo/get
  • 请求类型:GET
  • 请求参数:通过hedaer方式传入参数token,值为demo1:1:35c8538dcfefab00d574cf2a48e93f96
  • 成功示例:
    {
      "errorNo": 0,
      "data": "278255"
    }
    

5.3 微服务2登录

  • 接口地址:http://127.0.0.1:8088/demo2/login
  • 请求类型:POST
  • 请求参数:
    {
      "accountNo":"admin",
      "password":"123456"
    }
    
  • 成功示例:
    {
      "errorNo": 0,
      "data": "demo2:1:35c8538dcfefab00d574cf2a48e93f96"
    }
    

5.4 微服务2验证接口

  • 接口地址:http://127.0.0.1:8088/demo2/get
  • 请求类型:GET
  • 请求参数:通过hedaer方式传入参数token,值为demo2:1:35c8538dcfefab00d574cf2a48e93f96
  • 成功示例:
    {
      "errorNo": 0,
      "data": "278255"
    }
    
Copyright © wueasy.com 2017-2022 all right reserved,powered by Gitbook未经允许,禁止以任何形式传播 修订时间: 2022-09-04

results matching ""

    No results matching ""