add hisysevent

Signed-off-by: baoyang <baoyang9@huawei.com>
Change-Id: Iba83f7619a4a66ea8b20e4d338f787ac30934887
This commit is contained in:
baoyang 2024-09-25 12:41:37 +00:00
parent f56c3099db
commit 0d9f8f7ef0
7 changed files with 119 additions and 1 deletions

View File

@ -51,6 +51,12 @@ const std::string JsonTagConstants::JSON_BORDER_TAG = "border";
const std::string JsonTagConstants::JSON_BORDER_WIDTH_TAG = "borderWidth";
const std::string JsonTagConstants::JSON_PARENT_TAG = "parent";
const std::string JsonTagConstants::JSON_PARENT_EFFECT_TAG = "parentEffect";
const std::string JsonTagConstants::JSON_IS_CLIPPED_TAG = "isClipped";
const std::string JsonTagConstants::JSON_TOP_CLIP_TAG = "topClip";
const std::string JsonTagConstants::JSON_BOTTOM_CLIP_TAG = "bottomClip";
const std::string JsonTagConstants::JSON_LEFT_CLIP_TAG = "leftClip";
const std::string JsonTagConstants::JSON_RIGHT_CLIP_TAG = "rightClip";
const std::string JsonTagConstants::JSON_PARENT_TAG_TAG = "parentTag";
const std::string JsonTagConstants::JSON_STYLE_TAG = "style";
const std::string JsonTagConstants::JSON_TEXT_TAG = "text";
const std::string JsonTagConstants::JSON_ICON_TAG = "icon";
@ -90,6 +96,17 @@ bool SecCompBase::ParseBool(const nlohmann::json& json, const std::string& tag,
return true;
}
bool SecCompBase::ParseString(const nlohmann::json& json, const std::string& tag, std::string& res)
{
if ((json.find(tag) == json.end()) || !json.at(tag).is_string()) {
SC_LOG_ERROR(LABEL, "json: %{public}s tag invalid.", tag.c_str());
return false;
}
res = json.at(tag).get<std::string>();
return true;
}
bool SecCompBase::ParsePadding(const nlohmann::json& json, const std::string& tag, PaddingSize& res)
{
if ((json.find(tag) == json.end()) || !json.at(tag).is_object()) {
@ -176,7 +193,28 @@ bool SecCompBase::ParseParent(const nlohmann::json& json, const std::string& tag
return false;
}
auto jsonParent = json.at(tag);
return ParseBool(jsonParent, JsonTagConstants::JSON_PARENT_EFFECT_TAG, parentEffect_);
if (!ParseBool(jsonParent, JsonTagConstants::JSON_PARENT_EFFECT_TAG, parentEffect_)) {
return false;
}
if (!ParseBool(jsonParent, JsonTagConstants::JSON_IS_CLIPPED_TAG, isClipped_)) {
return false;
}
if (!ParseDimension(jsonParent, JsonTagConstants::JSON_TOP_CLIP_TAG, topClip_)) {
return false;
}
if (!ParseDimension(jsonParent, JsonTagConstants::JSON_BOTTOM_CLIP_TAG, bottomClip_)) {
return false;
}
if (!ParseDimension(jsonParent, JsonTagConstants::JSON_LEFT_CLIP_TAG, leftClip_)) {
return false;
}
if (!ParseDimension(jsonParent, JsonTagConstants::JSON_RIGHT_CLIP_TAG, rightClip_)) {
return false;
}
if (!ParseString(jsonParent, JsonTagConstants::JSON_PARENT_TAG_TAG, parentTag_)) {
return false;
}
return true;
}
bool SecCompBase::ParseRect(const nlohmann::json& json, const std::string& tag, SecCompRect& rect)
@ -301,6 +339,12 @@ void SecCompBase::ToJson(nlohmann::json& jsonRes) const
};
jsonRes[JsonTagConstants::JSON_PARENT_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_PARENT_EFFECT_TAG, parentEffect_ },
{ JsonTagConstants::JSON_IS_CLIPPED_TAG, isClipped_ },
{ JsonTagConstants::JSON_TOP_CLIP_TAG, topClip_ },
{ JsonTagConstants::JSON_BOTTOM_CLIP_TAG, bottomClip_ },
{ JsonTagConstants::JSON_LEFT_CLIP_TAG, leftClip_ },
{ JsonTagConstants::JSON_RIGHT_CLIP_TAG, rightClip_ },
{ JsonTagConstants::JSON_PARENT_TAG_TAG, parentTag_ },
};
jsonRes[JsonTagConstants::JSON_STYLE_TAG] = nlohmann::json {

View File

@ -127,3 +127,8 @@ PREPROCESS_MESSAGE_FAILED:
CALLER_BUNDLE_NAME: {type: STRING, desc: caller bundle name}
CLIENT_SESSION_ID: {type: INT32, desc: session id stored in client}
CLIENT_SEQ_NUM: {type: INT32, desc: sequence number stored in client}
CLIP_CHECK_FAILED:
__BASE: {type: SECURITY, level: CRITICAL, desc: The security component is clipped by parent component}
CALLER_BUNDLE_NAME: {type: STRING, desc: caller bundle name}
COMPONENT_INFO: {type: STRING, desc: component information}

View File

@ -66,6 +66,12 @@ public:
static const std::string JSON_BORDER_WIDTH_TAG;
static const std::string JSON_PARENT_TAG;
static const std::string JSON_PARENT_EFFECT_TAG;
static const std::string JSON_IS_CLIPPED_TAG;
static const std::string JSON_TOP_CLIP_TAG;
static const std::string JSON_BOTTOM_CLIP_TAG;
static const std::string JSON_LEFT_CLIP_TAG;
static const std::string JSON_RIGHT_CLIP_TAG;
static const std::string JSON_PARENT_TAG_TAG;
static const std::string JSON_STYLE_TAG;
static const std::string JSON_TEXT_TAG;
@ -108,6 +114,12 @@ public:
// parent effect
bool parentEffect_ = false;
bool isClipped_ = false;
DimensionT topClip_;
DimensionT bottomClip_;
DimensionT leftClip_;
DimensionT rightClip_;
std::string parentTag_;
SecCompType type_ = UNKNOWN_SC_TYPE;
SecCompRect rect_;
@ -127,6 +139,7 @@ private:
bool ParseDimension(const nlohmann::json& json, const std::string& tag, DimensionT& res);
bool ParseColor(const nlohmann::json& json, const std::string& tag, SecCompColor& res);
bool ParseBool(const nlohmann::json& json, const std::string& tag, bool& res);
bool ParseString(const nlohmann::json& json, const std::string& tag, std::string& res);
bool ParsePadding(const nlohmann::json& json, const std::string& tag, PaddingSize& res);
bool ParseColors(const nlohmann::json& json, const std::string& tag);
bool ParseBorders(const nlohmann::json& json, const std::string& tag);

View File

@ -58,6 +58,12 @@ void TestCommon::BuildLocationComponentInfo(nlohmann::json& jsonComponent)
};
jsonComponent[JsonTagConstants::JSON_PARENT_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_PARENT_EFFECT_TAG, false },
{ JsonTagConstants::JSON_IS_CLIPPED_TAG, false },
{ JsonTagConstants::JSON_TOP_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_BOTTOM_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_LEFT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_RIGHT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_PARENT_TAG_TAG, "" },
};
jsonComponent[JsonTagConstants::JSON_STYLE_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_TEXT_TAG, LocationDesc::SELECT_LOCATION },
@ -108,6 +114,12 @@ void TestCommon::BuildSaveComponentInfo(nlohmann::json& jsonComponent)
};
jsonComponent[JsonTagConstants::JSON_PARENT_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_PARENT_EFFECT_TAG, false },
{ JsonTagConstants::JSON_IS_CLIPPED_TAG, false },
{ JsonTagConstants::JSON_TOP_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_BOTTOM_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_LEFT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_RIGHT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_PARENT_TAG_TAG, "" },
};
jsonComponent[JsonTagConstants::JSON_STYLE_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_TEXT_TAG, SaveDesc::DOWNLOAD },
@ -158,6 +170,12 @@ void TestCommon::BuildPasteComponentInfo(nlohmann::json& jsonComponent)
};
jsonComponent[JsonTagConstants::JSON_PARENT_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_PARENT_EFFECT_TAG, false },
{ JsonTagConstants::JSON_IS_CLIPPED_TAG, false },
{ JsonTagConstants::JSON_TOP_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_BOTTOM_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_LEFT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_RIGHT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_PARENT_TAG_TAG, "" },
};
jsonComponent[JsonTagConstants::JSON_STYLE_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_TEXT_TAG, PasteDesc::PASTE },

View File

@ -15,9 +15,12 @@
#include "sec_comp_info_helper.h"
#include "accesstoken_kit.h"
#include "bundle_mgr_client.h"
#include "display.h"
#include "display_info.h"
#include "display_manager.h"
#include "hisysevent.h"
#include "ipc_skeleton.h"
#include "location_button.h"
#include "paste_button.h"
#include "save_button.h"
@ -69,6 +72,17 @@ SecCompBase* SecCompInfoHelper::ParseComponent(SecCompType type, const nlohmann:
return comp;
}
if (comp->isClipped_) {
int32_t uid = IPCSkeleton::GetCallingUid();
OHOS::AppExecFwk::BundleMgrClient bmsClient;
std::string bundleName = "";
bmsClient.GetNameForUid(uid, bundleName);
HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::SEC_COMPONENT, "CLIP_CHECK_FAILED",
HiviewDFX::HiSysEvent::EventType::SECURITY,
"CALLER_BUNDLE_NAME", bundleName,
"COMPONENT_INFO", jsonComponent.dump().c_str());
}
comp->SetValid(CheckComponentValid(comp));
return comp;
}

View File

@ -235,6 +235,12 @@ HWTEST_F(SecCompInfoHelperTest, ParseComponent006, TestSize.Level1)
jsonComponent[JsonTagConstants::JSON_PARENT_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_PARENT_EFFECT_TAG, true },
{ JsonTagConstants::JSON_IS_CLIPPED_TAG, false },
{ JsonTagConstants::JSON_TOP_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_BOTTOM_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_LEFT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_RIGHT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_PARENT_TAG_TAG, "" },
};
comp = SecCompInfoHelper::ParseComponent(LOCATION_COMPONENT, jsonComponent);
ASSERT_FALSE(comp->GetValid());

View File

@ -58,6 +58,12 @@ void ServiceTestCommon::BuildLocationComponentJson(nlohmann::json& jsonComponent
};
jsonComponent[JsonTagConstants::JSON_PARENT_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_PARENT_EFFECT_TAG, false },
{ JsonTagConstants::JSON_IS_CLIPPED_TAG, false },
{ JsonTagConstants::JSON_TOP_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_BOTTOM_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_LEFT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_RIGHT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_PARENT_TAG_TAG, "" },
};
jsonComponent[JsonTagConstants::JSON_STYLE_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_TEXT_TAG, LocationDesc::SELECT_LOCATION },
@ -108,6 +114,12 @@ void ServiceTestCommon::BuildSaveComponentJson(nlohmann::json& jsonComponent)
};
jsonComponent[JsonTagConstants::JSON_PARENT_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_PARENT_EFFECT_TAG, false },
{ JsonTagConstants::JSON_IS_CLIPPED_TAG, false },
{ JsonTagConstants::JSON_TOP_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_BOTTOM_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_LEFT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_RIGHT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_PARENT_TAG_TAG, "" },
};
jsonComponent[JsonTagConstants::JSON_STYLE_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_TEXT_TAG, SaveDesc::DOWNLOAD },
@ -158,6 +170,12 @@ void ServiceTestCommon::BuildPasteComponentJson(nlohmann::json& jsonComponent)
};
jsonComponent[JsonTagConstants::JSON_PARENT_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_PARENT_EFFECT_TAG, false },
{ JsonTagConstants::JSON_IS_CLIPPED_TAG, false },
{ JsonTagConstants::JSON_TOP_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_BOTTOM_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_LEFT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_RIGHT_CLIP_TAG, 0.0 },
{ JsonTagConstants::JSON_PARENT_TAG_TAG, "" },
};
jsonComponent[JsonTagConstants::JSON_STYLE_TAG] = nlohmann::json {
{ JsonTagConstants::JSON_TEXT_TAG, PasteDesc::PASTE },