diff options
| author | 董晓燕 <[email protected]> | 2021-06-03 09:55:45 +0000 |
|---|---|---|
| committer | 董晓燕 <[email protected]> | 2021-06-03 09:55:45 +0000 |
| commit | ac68e65f508799a0e555a240ae374d313a0a8d75 (patch) | |
| tree | 2a339bbd8acd65e2fb235159cc9c5303ae5725b7 /keyword/common/login_logout.robot | |
| parent | 2f39b56d617e5fba2b8d73d81cd5e6d894f85352 (diff) | |
| parent | 4667c668725ff7cb673c637a297c67283876d4d4 (diff) | |
Develop
See merge request dongxiaoyan/gap_tsg_api!4
Diffstat (limited to 'keyword/common/login_logout.robot')
| -rw-r--r-- | keyword/common/login_logout.robot | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/keyword/common/login_logout.robot b/keyword/common/login_logout.robot new file mode 100644 index 0000000..218ac31 --- /dev/null +++ b/keyword/common/login_logout.robot @@ -0,0 +1,180 @@ +*** Settings *** +Resource ../../variable/common_variable.txt +Library REST http://${host}:${port} +Library Collections +#Library SSHLibrary +Library yaml +#Library json +Library OperatingSystem +Resource ../policys/policy.robot +Resource ../objects/object.robot +Resource clear_data.robot + +*** Keywords *** +InitPotocol + ${appDict} Create Dictionary + ${appVDict} Create Dictionary + Connect To Database Using Custom Params pymysql ${mysqlHost} + ${app_id} query SELECT group_id,low_boundary,region_name FROM tsg_obj_app_id WHERE is_valid=1 AND region_name='http' OR region_name='ssl' OR region_name='dns' OR region_name='ftp' OR region_name='mail' OR region_name='doh' OR region_name='rtp' OR region_name='sip' + # ... SELECT group_id,low_boundary,region_name FROM tsg_obj_app_id WHERE is_valid=1 and region_name in('http','ftp','https','ssl','dns','doh','quic','mail') + ${app_length} Get Length ${app_id} + FOR ${n} IN RANGE ${app_length} + log ${n} + Set To Dictionary ${appDict} ${app_id}[${n}][2]=${app_id}[${n}][0] + Set To Dictionary ${appVDict} ${app_id}[${n}][2]=${app_id}[${n}][1] + log ${appDict} + log ${appVDict} + END + Disconnect From Database + #供策略创建使用的appid + SET GLOBAL VARIABLE ${objprotol} ${appDict} + #供策略验证使用的appid + SET GLOBAL VARIABLE ${appportol} ${appVDict} + GetProtocol + +GetProtocol + ${HTTP_ID1} Get From Dictionary ${objprotol} http + ${RTP_ID1} Get From Dictionary ${objprotol} rtp + ${DNS_ID1} Get From Dictionary ${objprotol} dns + ${MAIL_ID1} Get From Dictionary ${objprotol} MAIL + ${FTP_ID1} Get From Dictionary ${objprotol} ftp + ${SIP_ID1} Get From Dictionary ${objprotol} sip + ${SSL_ID1} Get From Dictionary ${objprotol} ssl + ${DOH_ID1} Get From Dictionary ${objprotol} DoH + SET GLOBAL VARIABLE ${HTTP_ID} ${HTTP_ID1} + SET GLOBAL VARIABLE ${RTP_ID} ${RTP_ID1} + SET GLOBAL VARIABLE ${DNS_ID} ${DNS_ID1} + SET GLOBAL VARIABLE ${MAIL_ID} ${MAIL_ID1} + SET GLOBAL VARIABLE ${FTP_ID} ${FTP_ID1} + SET GLOBAL VARIABLE ${SIP_ID} ${SIP_ID1} + SET GLOBAL VARIABLE ${SSL_ID} ${SSL_ID1} + SET GLOBAL VARIABLE ${DOH_ID} ${DOH_ID1} + + ${HTTP_VID1} Get From Dictionary ${appportol} http + ${RTP_VID1} Get From Dictionary ${appportol} rtp + ${DNS_VID1} Get From Dictionary ${appportol} dns + ${MAIL_VID1} Get From Dictionary ${appportol} MAIL + ${FTP_VID1} Get From Dictionary ${appportol} ftp + ${SIP_VID1} Get From Dictionary ${appportol} sip + ${SSL_VID1} Get From Dictionary ${appportol} ssl + ${DOH_VID1} Get From Dictionary ${appportol} DoH + SET GLOBAL VARIABLE ${HTTP_VID} ${HTTP_VID1} + SET GLOBAL VARIABLE ${RTP_VID} ${RTP_VID1} + SET GLOBAL VARIABLE ${DNS_VID} ${DNS_VID1} + SET GLOBAL VARIABLE ${MAIL_VID} ${MAIL_VID1} + SET GLOBAL VARIABLE ${FTP_VID} ${FTP_VID1} + SET GLOBAL VARIABLE ${SIP_VID} ${SIP_VID1} + SET GLOBAL VARIABLE ${SSL_VID} ${SSL_VID1} + SET GLOBAL VARIABLE ${DOH_VID} ${DOH_VID1} + + +InitTemplate + #加载对象mode + ${YAML}= Get File ${path}/data/template/template.yaml + ${LOADED}= yaml.Safe Load ${YAML} + ${objMode} Get From Dictionary ${LOADED} ip_batch_mode + ${objList} Get From Dictionary ${objMode} objectList + #转json替换 + ${toJson} json.Dumps ${objMode} + ${objList} json.Dumps ${objList} + SET GLOBAL VARIABLE ${objModeJson} ${toJson} + SET GLOBAL VARIABLE ${objListMode} ${objList} + + #${YAML}= Get File ${path}/data/policy_template.yaml + #${LOADED}= yaml.Safe Load ${YAML} + ${policyMode} Get From Dictionary ${LOADED} policy_template + ${policyList} Get From Dictionary ${policyMode} policyList + ${toJson} json.Dumps ${policyMode} + ${policyList} json.Dumps ${policyList} + SET GLOBAL VARIABLE ${policyModeJson} ${toJson} + SET GLOBAL VARIABLE ${policyListMode} ${policyList} + +ApiLogin + [Tags] + # 毕方接口密码加密 + GET /${version}/user/encryptpwd?password=${password} + Object response body + Integer $.code 200 + #log ${rescode} + ${pwd} String $.data.encryptpwd + #log ${pwd} + ${pwdstr} Get From List ${pwd} 0 + log ${pwdstr} + SET GLOBAL VARIABLE ${encodePassword} ${pwdstr} + log ${encodePassword} + #log ${username} + #log ${pwdstr} + POST /${version}/user/login?username=${username}&password=${encodePassword}&authMode=${authmode} + Object response body + #OUTPUT response body + Integer $.code 200 + ${rescode} Integer $.code + log ${rescode} + ${tokenGlobal} String $.data.token + ${tokenStr} Get From List ${tokenGlobal} 0 + log ${tokenStr} + SET GLOBAL VARIABLE ${token} ${tokenStr} + log ${token} + SET GLOBAL VARIABLE ${headers} {"Contest-Type":"application/json","Authorization":"${token}"} + #初始化接口中策略中引用协议和策略校验协议 + Run Keyword If ${addPolicy}==1 InitPotocol + #加载对象mode + InitTemplate + #初始化删除参数 + SET GLOBAL VARIABLE ${createObjectIds} ${EMPTY} + SET GLOBAL VARIABLE ${createPolicyIds} ${EMPTY} + #Return ${rescode} +ApiLogout + [Tags] tsg_adc tsg_bf_api + POST /${version}/user/logout headers=${headers} + Object response body + Integer $.code 200 + ${rescode} Integer $.code + #[Return] ${rescode} + +BifangLoginAndAddLocalIP + [Tags] tsg_adc tsg_bf_api + log ApiLoginAndAddLocalIP + ApiLogin + #log ********** + + Run Keyword If ${addTestClentIPFlag}==1 AddLocalIPObject + log ApiLoginAndAddLocalIP + #添加tsgUIAPI + Run Keyword If ${addTsgUIAPIFlag}==1 SecurityPolicyAllowTSGUIAPIAdd + +BifangLogoutAndDelLocalIP + [Tags] tsg_adc tsg_bf_api + log ApiLogoutAndDelLocalIP + log to_LogoutAndDelLocalIP_LogoutAndDelLocalIP + #删除tsgUIAPI 先删除白名单,是因为此策略也引用了本机IP + Run Keyword If ${addTsgUIAPIFlag}==1 SecurityPolicyAllowTSGUIAPIDEL + Run Keyword If ${addTestClentIPFlag}==1 DelLocalIPObject + #ApiDeleteAutoTagsCase + ApiLogout + #[Return] ${rescode} + +SecurityPolicyAllowTSGUIAPIAdd + [Tags] uiallow + log toAddTSGUIAPI + ${addItemList1} Create Dictionary isSession=endpoint ip=${host}/32 port=0-0 direction=0 protocol=0 isInitialize=0 + #可以添加多个 + ${addItemLists} Create list ${addItemList1} + #objectList对象 + ${objectDict} Create Dictionary objectType=ip objectSubType=endpoint isValid=${1} addItemList=${addItemLists} + ${rescode} ${objectId} AddObjects ${1} ${objectDict} + SET GLOBAL VARIABLE ${testBifangIP} ${objectId} + ${HTTP_ID} Get From Dictionary ${objprotol} http + ${SSL_ID} Get From Dictionary ${objprotol} ssl + Comment 创建安全策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Allow-TSGUIAPI policyType=tsg_security policyDesc=autotest action=allow source=${testClentID}|TSG_SECURITY_SOURCE_ADDR destination=${objectId}|TSG_SECURITY_DESTINATION_ADDR userRegion={} isValid=${1} appIdObjects=${HTTP_ID},${SSL_ID} + log ${policyDict} + ${rescode} ${policyId} AddPolicies 1 ${policyDict} v2 + SET GLOBAL VARIABLE ${testBifangPolicy} ${policyId} + log addTSGUIAPISucess +SecurityPolicyAllowTSGUIAPIDEL + [Tags] uiallow + log toDelTSGUIAPI + ${objectIds} Create List ${testBifangIP} + DeletePolicyAndGroupObject ${testBifangPolicy} ${objectIds} + log delTSGUIAPISucess
\ No newline at end of file |
