关于401的解决方案

来源:6-6 jwt改造之日志及错误处理(2)

莫得感情的码农

2019-10-24

假设现在加入一个新的微服务demo-test,对外提供一个接口:

  • /info1 不需要 token 就能访问

网关上的配置如下:

zuul:
  routes:
    api-test:
      path: /test/**
      serviceId: demo-test

由于出现401的情况分为两种:

  1. 网关上的401
  2. 微服务本身返回的401

为了解决12,进而顺利访问/test/info1,则网关和微服务的安全配置中都需要加入这一段配置【1】

.antMatchers("/test/info1").permitAll()

但个人认为这样的配置造成了网关和demo-test的高耦合,因为后期如果demo-test添加新的不需要token就能访问的接口/info2/info3,或者/info1改成需要token才能访问,这样一来,网关和微服务的配置【1】都需要修改。
jojo老师,我这样的解决方案是不是有问题?有没有更好的解决方案?

写回答

1回答

JoJo

2019-10-28

后面应该有讲,这个配置不能这么写死在代码里,应该是一个统一的权限服务,网关和应用都访问这个服务来判断是否有权访问。

0
0

Spring Cloud微服务安全实战 可落地的安全方案

从API到复杂微服务场景,实战部署可落地的安全方案。

1029 学习 · 370 问题

查看课程