1 /* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef NETMANAGER_NET_CONN_SECURITY_H 17 #define NETMANAGER_NET_CONN_SECURITY_H 18 19 #include "accesstoken_kit.h" 20 #include "iservice_registry.h" 21 #include "nativetoken_kit.h" 22 #include "net_all_capabilities.h" 23 #include "net_conn_service.h" 24 #include "system_ability_definition.h" 25 #include "token_setproc.h" 26 27 namespace OHOS { 28 namespace NetManagerStandard { 29 using Security::AccessToken::AccessTokenKit; 30 using Security::AccessToken::AccessTokenID; 31 using Security::AccessToken::AccessTokenIDEx; 32 class AccessToken { 33 public: AccessToken(Security::AccessToken::HapInfoParams & testInfoParms,Security::AccessToken::HapPolicyParams & testPolicyPrams)34 AccessToken(Security::AccessToken::HapInfoParams &testInfoParms, 35 Security::AccessToken::HapPolicyParams &testPolicyPrams) 36 { 37 currentID_ = GetSelfTokenID(); 38 AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(testInfoParms, testPolicyPrams); 39 accessID_ = tokenIdEx.tokenIdExStruct.tokenID; 40 SetSelfTokenID(accessID_); 41 } ~AccessToken()42 ~AccessToken() 43 { 44 AccessTokenKit::DeleteToken(accessID_); 45 SetSelfTokenID(currentID_); 46 } 47 48 private: 49 AccessTokenID currentID_ = 0; 50 AccessTokenID accessID_ = 0; 51 }; 52 } // namespace NetManagerStandard 53 } // namespace OHOS 54 #endif // NETMANAGER_NET_CONN_SECURITY_H