From 47ca680bba9d9928565ed960b2a921aaf0aa8926 Mon Sep 17 00:00:00 2001 From: lyf Date: Mon, 26 Apr 2021 09:38:04 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=8F=90=E4=BA=A4application?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=85=B3=E9=94=AE=E5=AD=97=EF=BC=8C2?= =?UTF-8?q?=E3=80=81=E6=8F=90=E4=BA=A4Signatures=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=85=B3=E9=94=AE=E5=AD=97=EF=BC=8C3=E3=80=81=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=88=A0=E9=99=A4application=E5=92=8CSignatures?= =?UTF-8?q?=E5=85=B3=E9=94=AE=E5=AD=97=204=E3=80=81=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=96=B0=E5=BB=BAmonitor=E7=AD=96=E7=95=A5=E7=9A=84application?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BB=A5=E5=8F=8A=E5=88=A0=E9=99=A4=E7=AD=96?= =?UTF-8?q?=E7=95=A5=E5=92=8C=E5=AF=B9=E8=B1=A1=E7=9A=84=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tsg_bfapi/api_log/NewApiLogCase.robot | 3 +- ...rity_Policy_Monitor_Application_Test.robot | 63 +++++++++++++ .../tsg_bfapi/policy_object/Application.robot | 94 +++++++++++++++++++ 3 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 01-TestCase/tsg_bfapi/security_policy/Security_Policy_Monitor_Application_Test.robot create mode 100644 02-Keyword/tsg_bfapi/policy_object/Application.robot diff --git a/01-TestCase/tsg_bfapi/api_log/NewApiLogCase.robot b/01-TestCase/tsg_bfapi/api_log/NewApiLogCase.robot index 20038e3..0360c8e 100644 --- a/01-TestCase/tsg_bfapi/api_log/NewApiLogCase.robot +++ b/01-TestCase/tsg_bfapi/api_log/NewApiLogCase.robot @@ -142,5 +142,4 @@ LogApiVerifyCase-007 ${responsebody} timedistribution ${logurl} ${token} ${StartTime} ${EndTime} ${logType} ${granularity} ${filter} - log ${responsebody} - \ No newline at end of file + log ${responsebody} \ No newline at end of file diff --git a/01-TestCase/tsg_bfapi/security_policy/Security_Policy_Monitor_Application_Test.robot b/01-TestCase/tsg_bfapi/security_policy/Security_Policy_Monitor_Application_Test.robot new file mode 100644 index 0000000..ee25878 --- /dev/null +++ b/01-TestCase/tsg_bfapi/security_policy/Security_Policy_Monitor_Application_Test.robot @@ -0,0 +1,63 @@ +*** Settings *** +#Test Teardown DeletePolicyAndObjectAndApplicationAndSignature ${policyIds} ${objectIds} ${appId} ${signaturesId} +Resource ../../../02-Keyword/tsg_bfapi/PolicyObject.robot +Resource ../../../02-Keyword/tsg_bfapi/policy_object/Policy.robot +Resource ../../../02-Keyword/tsg_bfapi/policy_object/Object.robot +Resource ../../../02-Keyword/tsg_bfapi/policy_object/Log.robot +Resource ../../../02-Keyword/tsg_bfapi/policy_object/Application.robot +Resource ../../../02-Keyword/tsg_bfapi/Common.robot +Resource ../../../03-Variable/ApplicationID.txt +Library json +Library DateTime +*** Variables *** +@{policyIds} +@{profiles} +${objectIds} ${EMPTY} +*** Test Cases *** +Monitor-test-001 + Comment 创建IP + ${addItemList1} Create Dictionary isSession=endpoint ip=192.168.50.59 port=0-65535 direction=0 protocol=0 isInitialize=0 + ${addItemLists} Create list ${addItemList1} + ${objectDict} Create Dictionary objectType=ip objectSubType=endpoint isValid=${1} addItemList=${addItemLists} + ${rescode} ${objectId} AddObjects ${1} ${objectDict} + + Comment 创建Signatures + ${signaturesBody} Set Variable {"returnData":1,"opAction":"add","signatures":[{"signatureName":"${TEST NAME}","profileModifiedTime":"","iconColor":"","signatureDesc":"","andConditions":[{"sigObjectName":"Condition 1","orConditions":[{"sigObjectName":"null","attributeName":"udp.payload.c2s_first_data","layer":"session_layer","stage":1,"attributeType":"string","attributeId":67,"objectId":[],"lowBoundary":"","upBoundary":"","exprType":0,"enableOffset":false,"keywordObj":[{"keywords":"www.google.com ","offset":"","depth":""}],"attributeFlag":1,"matchMethod":0,"isHexbin":0,"protocol":"udp","luaProfileId":0}]}]}]} + ${signaturesId} AddSignature ${signaturesBody} + + Comment 创建Application + ${applicationBody} Set Variable {"opAction":"add","returnData":1,"appObj":{"appId":"","appName":"${TEST NAME}","standardPorts":"","isValid":1,"appProperties":{"parentAppId":0,"category":"networking","subcategory":"proxy","technology":"peer-to-peer","risk":"3","characteristics":"","denyAction":0,"continueScanning":0,"tcpTimeout":0,"udpTimeout":0,"tcpHalfClose":null,"tcpTimeWait":null},"appSurrogates":[{"appSuid":null,"group_by":"session","time_window":0,"ordered_match":"no","show":false,"signature_sequence":[{"signature_id":${signaturesId},"exclude":0,"iconColor":""}]}]}} + ${appId} AddApplication ${applicationBody} + + Comment 查询Application,获取AppIDObject + ${appidobject} GetAppIdObjects ${appId} + Comment 创建策略 + ${policyDict} Create Dictionary policyName=${TEST NAME} policyType=tsg_security action=monitor source=${objectId}|TSG_SECURITY_SOURCE_ADDR userRegion={"protocol":"${TEST NAME}"} isValid=${1} appIdObjects=${appidobject} + ${rescode} ${policyIds} AddPolicies 1 ${policyDict} v2 + log ${policyIds}[0][policyIds][0] + # insert_policyId_to_file1 monitor_policyId ${policyIds}[0][policyIds][0] + # insert_policyId_to_file1 monitor_applicationId ${appId} + # insert_policyId_to_file1 monitor_signaturesId ${signaturesId} + # insert_policyId_to_file1 monitor_objectId ${objectId} + + +Delete-test + #删除对象 + ${objectids} set Variable ${monitor_objectId} + # ${objectids} Catenate SEPARATOR=, ${objectids} ${monitor_policyId1} + # ${objectids} Catenate SEPARATOR=, ${objectids} ${monitor_policyId2} + + #删除策略 + ${policyIds} set Variable ${monitor_policyId} + # ${policyIds} Catenate SEPARATOR=, ${policyIds} ${monitor_policyId1} + # ${policyIds} Catenate SEPARATOR=, ${policyIds} ${monitor_policyId2} + + #删除Application + ${appId} set Variable ${monitor_applicationId} + # ${appId} Catenate SEPARATOR=, ${appId} ${monitor_applicationId1} + # ${appId} Catenate SEPARATOR=, ${appId} ${monitor_applicationId2} + + #删除Signatures + ${signaturesId} set Variable ${monitor_signaturesId} + # ${signaturesId} Catenate SEPARATOR=, ${signaturesId} ${monitor_signaturesId} + # ${signaturesId} Catenate SEPARATOR=, ${signaturesId} ${monitor_signaturesId} \ No newline at end of file diff --git a/02-Keyword/tsg_bfapi/policy_object/Application.robot b/02-Keyword/tsg_bfapi/policy_object/Application.robot new file mode 100644 index 0000000..60ab03a --- /dev/null +++ b/02-Keyword/tsg_bfapi/policy_object/Application.robot @@ -0,0 +1,94 @@ +*** Settings *** +Library Collections +Library RequestsLibrary +Resource ../../../03-Variable/BifangApiVariable.txt +Resource ../../../02-Keyword/tsg_bfapi/policy_file_interface/FunctionalKeywords.robot +Resource ProcessObjectBody.robot +Library Collections +Resource ../Common.robot +Library ../../../04-CustomLibrary/Library/fileOperations.py +Library DatabaseLibrary + +*** Variables *** +${applicationUrl} /application +${signatureUrl} /application/signatures +*** Keywords *** +AddSignature + [Arguments] ${signaturereqbody} + [Documentation] 新增Signature,返回Signature ID + ${response} BasePostRequestForV2 ${signatureUrl} ${signaturereqbody} ${version} + ${rescode} Set Variable ${response['code']} + ${signatureId} Set Variable ${response['data']['signatures'][0]['signatureId']} + Should Be Equal As Strings ${rescode} 200 + [Return] ${signatureId} +AddApplication + [Arguments] ${appreqbody} + [Documentation] 新增Application,返回APPIDObject + ${response} BasePostRequestForV2 ${applicationUrl} ${appreqbody} ${version} + ${rescode} Set Variable ${response['code']} + ${appids} Set Variable ${response['data']['appObj']['appId']} + Should Be Equal As Strings ${rescode} 200 + [Return] ${appids} +GetAppIdObjects + [Arguments] ${appids} + [Documentation] 通过APPID查询Application,返回APPIDObject + ${response} BaseFormRequest ${applicationUrl} appIds=${appids} ${version} + ${rescode} Set Variable ${response['code']} + ${appidobject} Set Variable ${response['data']['list'][0]['objectId']} + Should Be Equal As Strings ${rescode} 200 + [Return] ${appidobject} + +DeletePolicyAndObjectAndApplicationAndSignature + [Arguments] ${policyids} ${objectids} ${appids} ${signatureId} + #删除和对象 + #2020-09-01修改,引用DeletePolicyAndGroupObject,避免分别维护并兼容之前用例 + Run Keyword If "${policyids}"=="${EMPTY}" log no policyids to del + ... ELSE DeletePolicyNew ${policyids} + + Run Keyword If "${objectids}"=="${EMPTY}" log no Objects to del + ... ELSE DeleteObjectNew ${objectids} + + Run Keyword If "${appids}"=="${EMPTY}" log no appids to del + ... ELSE DeleteApplicationNew ${appids} + + Run Keyword If "${signatureId}"=="${EMPTY}" log no appids to del + ... ELSE DeleteSignatureNew ${signatureId} + + +DeleteApplicationNew + [Arguments] ${appids} + #删除Application + ${response} BaseDeleteRequest /${version}/application {"appIds":[${appids}]} + ${response_code} Get From Dictionary ${response} code + Should Be Equal As Strings ${response_code} 200 + ${response} Convert to String ${response} + log ${response} + +DeleteSignatureNew + [Arguments] ${signatureId} + #删除Signature + ${response} BaseDeleteRequest /${version}/application/signatures {"signatureIds":[${signatureId}]} + ${response_code} Get From Dictionary ${response} code + Should Be Equal As Strings ${response_code} 200 + ${response} Convert to String ${response} + log ${response} + +DeleteObjectNew + [Arguments] ${objectids} + #删除对象 + log todeleteobj + ${response} BaseDeleteRequest /${version}/policy/object {"objectIds":[${objectids}]} + ${response_code} Get From Dictionary ${response} code + Should Be Equal As Strings ${response_code} 200 + ${response} Convert to String ${response} + log ${response} + +DeletePolicyNew + [Arguments] ${policyids} + #删除策略 + log toDeletePolicy_DeletePolicyDeletePolicy + ${response} BaseDeleteRequest /${version}/policy/compile {"policyType":"tsg_security","policyIds":[${policyids}]} + ${response_code} Get From Dictionary ${response} code + Should Be Equal As Strings ${response_code} 200 + ${response} Convert to String ${response} + log ${response} \ No newline at end of file