diff --git a/utils/native/src/time_permission.cpp b/utils/native/src/time_permission.cpp index c2db4ff..619af9a 100644 --- a/utils/native/src/time_permission.cpp +++ b/utils/native/src/time_permission.cpp @@ -27,12 +27,23 @@ bool TimePermission::CheckCallingPermission(const std::string &permissionName) } auto callerToken = IPCSkeleton::GetCallingTokenID(); - int result = Security::AccessToken::AccessTokenKit::VerifyAccessToken(callerToken, permissionName); + auto tokenType = Security::AccessToken::AccessTokenKit::GetTokenTypeFlag(callerToken); + int result = Security::AccessToken::PERMISSION_DENIED; + if (tokenType == Security::AccessToken::ATokenTypeEnum::TOKEN_NATIVE) { + result = Security::AccessToken::AccessTokenKit::VerifyNativeToken(callerToken, permissionName); + } else if (tokenType == Security::AccessToken::ATokenTypeEnum::TOKEN_HAP) { + result = Security::AccessToken::AccessTokenKit::VerifyAccessToken(callerToken, permissionName); + } else { + TIME_HILOGE(TIME_MODULE_COMMON, "permission check failed, callerToken:%{public}u,tokenType:%{public}d", + callerToken, tokenType); + } + if (result != Security::AccessToken::PERMISSION_GRANTED) { TIME_HILOGE(TIME_MODULE_COMMON, "permission check failed, permission:%{public}s, callerToken:%{public}u", permissionName.c_str(), callerToken); + return false; } - return result == Security::AccessToken::PERMISSION_GRANTED; + return true; } } // namespace MiscServices } // namespace OHOS \ No newline at end of file