元数据检查方法原创
金蝶云社区-杨天罡
杨天罡
9人赞赏了该文章 1,008次浏览 未经作者许可,禁止转载编辑于2022年06月22日 09:10:13

背景:客户环境有时候有很多二开或者扩展的元数据,有些二开还将标准元数据打成私包进行部署,然后出现各种元数据问题影响功能使用

作用:通过下面的方法,能够快速定位系统加载的元数据所在jar包,排查是否被二开篡改;能够定位元数据是否存在,能够定位元数据属性是否存在

如果对元数据API熟悉,可以通过这里进行更多的扩展查询

--检查实体元数据存不存,通过查询分析执行服务端脚本,实体的包路径之间用/分割,能够指出实体所在的jar包路径。以person实体举例
com.kingdee.bos.dao.xml.impl.MDLoader.getInstance().cl.getResource("com/kingdee/eas/basedata/person/app/Person.entity");

image.png


--检查实体元数据的属性存不存,通过查询分析执行服务端脚本,实体包路径之间用.分割,并且不能带.entity结尾。以person实体的name属性举例:
com.kingdee.bos.metadata.MetaDataLoaderFactory.getLocalMetaDataLoader(ctx).getEntity(com.kingdee.bos.metadata.MetaDataPK.create("com.kingdee.eas.basedata.person.app.Person")).getPropertyByNameRuntime("name");

image.png

赞 9