前言
目前公司采用的开发框架是ABP VNext微服务框架
最近突然发现一个问题,ABP中如果控制器或服务层没有加 Authorize特性的话,则不会走身份认证,且不会认证Token
如图:
但是项目已开发大半...,一个个去补Authorize特性,工作量比较大,也容易产生遗漏
就想着以前做单体应用的时候,有个全局添加特性的方法,也就是如下代码:
Services.AddMvc(setupAction =>
{...我们都知道,ABP提供了服务间的动态API通讯功能,它的原理是先获取对应服务的描述,然后通过描述来访问对应的服务节点,
也就是 api/abp/api-definition 这个描述JSON
我们用以上的代码添加了全局授权之后会发现...api-definition也被权限管控了,由于api-definition是由ABP框架自动生成的,我们也无法在这个终结点上添加类似 AllowAnonymous 的过滤特性
正文
那么应该如何解决这个问题呢...后来想到,可以继承AuthorizeFilter ,添加我们想要的过滤之后直接执行父类的方法,说干就干,我们继承AuthorizeFilter ,代码实现如下:
public class AbpAuthorizeFilter