diff --git a/services/accesstokenmanager/BUILD.gn b/services/accesstokenmanager/BUILD.gn index 43db3e913035f0df838ce6ea195814d14fbb51b1..9cea0c3cff01463f8555a7844d60af32930e8a6e 100644 --- a/services/accesstokenmanager/BUILD.gn +++ b/services/accesstokenmanager/BUILD.gn @@ -40,7 +40,6 @@ ohos_shared_library("accesstoken_manager_service") { "//base/security/access_token/interfaces/innerkits/privacy/include", "//base/security/access_token/interfaces/innerkits/tokensync/src", "//base/security/access_token/services/tokensyncmanager/include/common", - "//foundation/distributedhardware/device_manager/interfaces/inner_kits/native_cpp/include", "//third_party/json/include", ] @@ -48,7 +47,6 @@ ohos_shared_library("accesstoken_manager_service") { "main/cpp/src/database/data_storage.cpp", "main/cpp/src/database/data_translator.cpp", "main/cpp/src/database/sqlite_storage.cpp", - "main/cpp/src/device/atm_device_state_callback.cpp", "main/cpp/src/permission/permission_definition_cache.cpp", "main/cpp/src/permission/permission_manager.cpp", "main/cpp/src/permission/permission_policy_set.cpp", @@ -74,27 +72,29 @@ ohos_shared_library("accesstoken_manager_service") { "//utils/native/base:utils", ] + external_deps = [ + "dsoftbus_standard:softbus_client", + "hiviewdfx_hilog_native:libhilog", + "ipc:ipc_core", + "safwk:system_ability_fwk", + "samgr_standard:samgr_proxy", + ] + if (token_sync_enable == true) { cflags_cc += [ "-DTOKEN_SYNC_ENABLE" ] sources += [ + "main/cpp/src/device/atm_device_state_callback.cpp", "main/cpp/src/token/accesstoken_remote_token_manager.cpp", "main/cpp/src/token/token_modify_notifier.cpp", ] include_dirs += [ "//base/security/access_token/interfaces/innerkits/tokensync/include", + "//foundation/distributedhardware/device_manager/interfaces/inner_kits/native_cpp/include", ] deps += [ "//base/security/access_token/interfaces/innerkits/tokensync:libtokensync_sdk" ] + external_deps += [ "device_manager:devicemanagersdk" ] } - - external_deps = [ - "device_manager:devicemanagersdk", - "dsoftbus_standard:softbus_client", - "hiviewdfx_hilog_native:libhilog", - "ipc:ipc_core", - "safwk:system_ability_fwk", - "samgr_standard:samgr_proxy", - ] } diff --git a/services/accesstokenmanager/main/cpp/include/service/accesstoken_manager_service.h b/services/accesstokenmanager/main/cpp/include/service/accesstoken_manager_service.h index b1cc4585755d9d6254253ceb7787a11f0257d3e8..a6bb3c284efaab290193c6e2723788b67143fa6d 100644 --- a/services/accesstokenmanager/main/cpp/include/service/accesstoken_manager_service.h +++ b/services/accesstokenmanager/main/cpp/include/service/accesstoken_manager_service.h @@ -27,7 +27,6 @@ #include "system_ability.h" #include "hap_token_info.h" #include "access_token.h" -#include "atm_device_state_callback.h" namespace OHOS { namespace Security { @@ -73,14 +72,14 @@ public: int DeleteRemoteToken(const std::string& deviceID, AccessTokenID tokenID) override; AccessTokenID GetRemoteNativeTokenID(const std::string& deviceID, AccessTokenID tokenID) override; int DeleteRemoteDeviceTokens(const std::string& deviceID) override; + void CreateDeviceListenner(); + void DestroyDeviceListenner(); #endif void DumpTokenInfo(std::string& dumpInfo) override; private: bool Initialize(); - void CreateDeviceListenner(); - void DestroyDeviceListenner(); ServiceRunningState state_; std::mutex mutex_; diff --git a/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp b/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp index 26a3e868b648538234e0cd638d75c451e03713e2..37ee9f47f637426a92c166f9dad3b18275af03ad 100644 --- a/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp +++ b/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp @@ -21,7 +21,10 @@ #include "accesstoken_id_manager.h" #include "accesstoken_info_manager.h" #include "accesstoken_log.h" +#ifdef TOKEN_SYNC_ENABLE +#include "atm_device_state_callback.h" #include "device_manager.h" +#endif #include "hap_token_info.h" #include "hap_token_info_inner.h" #include "ipc_skeleton.h" @@ -43,8 +46,6 @@ static constexpr OHOS::HiviewDFX::HiLogLabel LABEL = { const bool REGISTER_RESULT = SystemAbility::MakeAndRegisterAbility(DelayedSingleton::GetInstance().get()); -const int32_t RETRY_SLEEP_TIME_MS = 1000; - AccessTokenManagerService::AccessTokenManagerService() : SystemAbility(SA_ID_ACCESSTOKEN_MANAGER_SERVICE, true), state_(ServiceRunningState::STATE_NOT_START) { @@ -80,7 +81,9 @@ void AccessTokenManagerService::OnStop() { ACCESSTOKEN_LOG_INFO(LABEL, "stop service"); state_ = ServiceRunningState::STATE_NOT_START; +#ifdef TOKEN_SYNC_ENABLE DestroyDeviceListenner(); +#endif } int AccessTokenManagerService::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) @@ -351,9 +354,10 @@ void AccessTokenManagerService::DumpTokenInfo(std::string& dumpInfo) AccessTokenInfoManager::GetInstance().DumpTokenInfo(dumpInfo); } - +#ifdef TOKEN_SYNC_ENABLE void AccessTokenManagerService::CreateDeviceListenner() { + static const int32_t RETRY_SLEEP_TIME_MS = 1000; std::function runner = [&]() { auto retrySleepTime = std::chrono::milliseconds(RETRY_SLEEP_TIME_MS); while (1) { @@ -424,12 +428,15 @@ void AccessTokenManagerService::DestroyDeviceListenner() ACCESSTOKEN_LOG_INFO(LABEL, "device state listenner unregister success."); } +#endif bool AccessTokenManagerService::Initialize() { AccessTokenInfoManager::GetInstance().Init(); NativeTokenReceptor::GetInstance().Init(); +#ifdef TOKEN_SYNC_ENABLE CreateDeviceListenner(); // for start tokensync when remote devivce online +#endif return true; } } // namespace AccessToken