调用分布式软总线CreateSessionServer接口报无权限'SOFTBUS_PERMISSION_DENIED'问题分析报告
1 关键字
新建SA服务;分布式软总线服务;CreateSessionServer接口;创建软总线会话报错
2 问题描述
设备:8541E
设备OH版本:3.2.7.5
新增SA服务,调用分布式软总线session.h的CreateSessionServer接口返回 '-268369912',无法正常创建软总线会话。
3 问题原因
3.1 正常机制
新建SA服务,调用分布式软总线session.h的CreateSessionServer接口能够成功创建软总线会话。
3.2 异常机制
新建SA服务,调用分布式软总线session.h的CreateSessionServer接口返回'-268369912',无法正常创建软总线会话。
4 解决方案
在\foundation\communication\dsoftbus\core\common\security\permission\softbus_trans_permission.json 文件中将新建的SA添加至配置中,授予新SA服务调用分布式软总线的权限。


5 定位过程
根据CreateSessionServer接口跟踪源码至../dsoftbus/core/common/security/permission/common/permission_entry.c文件中,发现是CheckPermissionEntry函数对创建权限进行了检查,并跟踪代码发现是获取../dsoftbus/core/common/security/permission/softbus_trans_permission.json中的配置来判断是否有对应SA服务的信息设置。

因此猜测根据已配置的系统应用的权限设置来设置新SA服务的权限既能生效。
6 知识分享
调用分布式软总线服务接口时,必须在../dsoftbus/core/common/security/permission/softbus_trans_permission.json中配置相关SA服务信息。
更多推荐

所有评论(0)