函数如何跳过权限拦截

跳过登录直接调用接口

示例:
  • 在yaml文件里面配置上该函数的namespace(模型编码)以及函数名字
    pamirs:
      auth:
        fun-filter:
            - namespace: user.PamirsUserTransient
              fun: login #登录
            - namespace: top.PetShop
              fun: action

不跳过登录直接调用接口

示例:
  • 在yaml文件里面配置上该函数的namespace(模型编码)以及函数名字
    pamirs:
      auth:
        fun-filter-only-login: #登录后不再校验该函数的权限
            - namespace: top.PetShop
              fun: action

按包设置权限过滤

  • 如何批量跳过权限验证?以上两种方式提供了在yml文件里面配置权限过滤的方式,但如果需要大量过滤权限,配置就变得很繁琐,所以下面主要介绍通过代码扩展的方式去控制权限。
示例:
  • 以下示例通过控制包路径来跳过权限。

  • 继承pro.shushi.pamirs.auth.api.spi.AuthFilterService接口

    @Order(88)
    @Component
    public class CustomAuthFilterService implements AuthFilterService {
    
    public static final String skipClass = "pro.shushi.pamirs.top.core.action";
    
    @Override
    public Boolean isAccessAction(String model, String name) {
        //从缓存中取函数
       Action cacheAction = PamirsSession.getContext().getExtendCache(ActionCacheApi.class).get(model, name);
        if (cacheAction instanceof ServerAction) {
            ServerAction serverAction = (ServerAction) cacheAction;
            Function function = PamirsSession.getContext().getFunction(serverAction.getModel(), serverAction.getFun());
            String clazz = function.getClazz();
            //返回true就代表通过验证
            if (clazz != null && clazz.startsWith(skipClass)) {
                return true;
            }
        }
        return null;
    }
    }

    请求pro.shushi.pamirs.top.core.action路径下的动作可以通过验证。

Oinone社区 作者:yexiu原创文章,如若转载,请注明出处:https://doc.oinone.top/wen-ti-zhen-duan/16299.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
yexiu的头像yexiu数式员工
上一篇 2024年8月22日 上午12:17
下一篇 2024年8月22日 下午7:51

相关推荐

  • 序列化工具使用问题

    后端使用的JSON序列化JsonUtils.toJSONString(nodes);前端使用的JSON序列化PamirsJsonUtils.toJSONString(nodes, SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteDateUseDateFormat…

    2024年9月5日
    59800
  • 树表查不到二级目录

    场景:树表结构查不到二级模型内容,联动配置如下 问题:界面只显示部门,不显示岗位。 已知: 自定义部门代理模型继承了PamirsDepartment @Model.model(DepartmentDoc.MODEL_MODEL) @Model.Advanced(type = ModelTypeEnum.PROXY) @Model(displayName = …

    2024年7月23日
    38600
  • O2M、M2O、M2M关系字段配置问题以及问题排查路径

    M2O关系字段 配置示例: @Field(displayName = “教师关联学生”) @Field.many2one @Field.Relation(relationFields = {“studentName”}, referenceFields = {“name”}) private Student students; 解析: 在这个多对一关系中,s…

    2024年8月9日
    55200
  • 新增模块不存在

    后端代码新增了一个模块,但在前端看不到新增的模块,主要排查以下几个方面 检查启动参数中是否添加-Plifecycle=INSTALL。 启动工程的yml文件中在pamirs: boot: modules: 中是否添加了该模块 启动工程的pom文件是否依赖该该模块所在包 检查启动工程是否扫描到了该模块所在包

    2024年7月23日
    64200
  • 保存多值字段SQL执行报错

    定义多值类型时,字段类型应该设置为List类型。 @Field.String @Field(displayName ="经费证明", multi = true, serialize = Field.serialize.JSON) private List<String> matchFund; 场景复现

    2024年8月30日
    39700

发表回复

登录后才能评论