📄 policy.cgi
字号:
print ' </TD>' print ' <TD>' print ' Add the type(s) selected above' print ' </TD>' print ' </TR>' print '</TABLE>'def sendPLSubHtml( ): global formVmNames, formVmDel, formVmName, formVmAdd global allVmDel, allVmDom0 global allVmChWs, allVmChWDel, allVmChW, allVmChWAdd global allVmStes, allVmSteDel, allVmSte, allVmSteAdd global formSteTypes, formChWallTypes print '<TABLE class="full">' print ' <COLGROUP>' print ' <COL width="100%">' print ' </COLGROUP>' # Virtual Machines... print ' <TR>' print ' <TD>' print ' <TABLE class="full">' print ' <COLGROUP>' print ' <COL width="10%">' print ' <COL width="40%">' print ' <COL width="50%">' print ' </COLGROUP>' print ' <TR>' print ' <TD class="heading" align="center" colspan="3">Virtual Machine Classes</TD>' print ' </TR>' print ' <TR>' print ' <TD colspan="2">' sendHtmlFormVar( formVmName, 'class="full"' ) sendHtmlFormVar( formVmNames ) print ' </TD>' print ' <TD> </TD>' print ' </TR>' print ' <TR>' print ' <TD>' sendHtmlFormVar( formVmAdd, 'class="full"' ) print ' </TD>' print ' <TD colspan="2">' print ' Create a new VM class with the above name' print ' </TD>' print ' </TR>' print ' </TABLE>' print ' </TD>' print ' </TR>' if len( formVmNames[1] ) > 0: print ' <TR>' print ' <TD colspan="1">' print ' ' print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD>' print ' <TABLE class="fullbox">' print ' <COLGROUP>' print ' <COL width="10%">' print ' <COL width="40%">' print ' <COL width="50%">' print ' </COLGROUP>' print ' <THEAD>' print ' <TR>' print ' <TD class="fullbox">Dom 0?</TD>' print ' <TD class="fullbox">Name</TD>' print ' <TD class="fullbox">Actions</TD>' print ' </TR>' print ' </THEAD>' for i, vmName in enumerate( formVmNames[1] ): print ' <TR>' print ' <TD class="fullbox">' if formVmNameDom0[1] == vmName: print 'Yes' else: print ' ' print ' </TD>' print ' <TD class="fullbox">' + vmName + '</TD>' print ' <TD class="fullbox">' print ' <A href="#' + vmName + '">Edit</A>' formVar = allVmDel[vmName] sendHtmlFormVar( formVar, 'class="link"' ) formVar = allVmDom0[vmName] sendHtmlFormVar( formVar, 'class="link"' ) print ' </TD>' print ' </TR>' print ' </TABLE>' print ' </TD>' print ' </TR>' for vmName in formVmNames[1]: print ' <TR>' print ' <TD>' print ' <HR>' print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD>' print ' <TABLE class="full">' print ' <COLGROUP>' print ' <COL width="10%">' print ' <COL width="39%">' print ' <COL width="2%">' print ' <COL width="10%">' print ' <COL width="39%">' print ' </COLGROUP>' print ' <TR>' print ' <TD colspan="5" align="center" class="heading">' print ' <A name="' + vmName + '">Virtual Machine Class: ' + vmName + '</A>' print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD colspan="2" align="center">Simple Type Enforcement Types</TD>' print ' <TD> </TD>' print ' <TD colspan="2" align="center">Chinese Wall Types</TD>' print ' </TR>' print ' <TR>' print ' <TD colspan="2">' formVar = allVmStes[vmName]; sendHtmlFormVar( formVar, 'class="full" size="4" multiple"' ) print ' </TD>' print ' <TD> </TD>' print ' <TD colspan="2">' formVar = allVmChWs[vmName]; sendHtmlFormVar( formVar, 'class="full" size="4" multiple"' ) print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD>' formVar = allVmSteDel[vmName]; sendHtmlFormVar( formVar, 'class="full"' ) print ' </TD>' print ' <TD>' print ' Delete the type(s) selected above' print ' </TD>' print ' <TD> </TD>' print ' <TD>' formVar = allVmChWDel[vmName]; sendHtmlFormVar( formVar, 'class="full"' ) print ' </TD>' print ' <TD>' print ' Delete the type(s) selected above' print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD colspan="2">' stSet = Set( formSteTypes[1] ) vmSet = Set( allVmStes[vmName][1] ) formVar = allVmSte[vmName] formVar[1] = [] for steType in stSet.difference( vmSet ): formVar[1].append( steType ) formVar[1].sort( ) sendHtmlFormVar( formVar, 'class="full" size="2" multiple"' ) print ' </TD>' print ' <TD> </TD>' print ' <TD colspan="2">' ctSet = Set( formChWallTypes[1] ) vmSet = Set( allVmChWs[vmName][1] ) formVar = allVmChW[vmName] formVar[1] = [] for chwallType in ctSet.difference( vmSet ): formVar[1].append( chwallType ) formVar[1].sort( ) sendHtmlFormVar( formVar, 'class="full" size="2" multiple"' ) print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD>' formVar = allVmSteAdd[vmName]; sendHtmlFormVar( formVar, 'class="full"' ) print ' </TD>' print ' <TD>' print ' Add the type(s) selected above' print ' </TD>' print ' <TD> </TD>' print ' <TD>' formVar = allVmChWAdd[vmName]; sendHtmlFormVar( formVar, 'class="full"' ) print ' </TD>' print ' <TD>' print ' Add the type(s) selected above' print ' </TD>' print ' </TR>' print ' </TABLE>' print ' </TD>' print ' </TR>' print '</TABLE>'def sendPLObjHtml( ): global formResNames, formResDel, formResName, formResAdd global allResDel global allResStes, allResSteDel, allResSte, allResSteAdd global formSteTypes, formChWallTypes print '<TABLE class="full">' print ' <COLGROUP>' print ' <COL width="100%">' print ' </COLGROUP>' # Resources... print ' <TR>' print ' <TD>' print ' <TABLE class="full">' print ' <COLGROUP>' print ' <COL width="10%">' print ' <COL width="40%">' print ' <COL width="50%">' print ' </COLGROUP>' print ' <TR>' print ' <TD class="heading" align="center" colspan="3">Resource Classes</TD>' print ' </TR>' print ' <TR>' print ' <TD colspan="2">' sendHtmlFormVar( formResName, 'class="full"' ) sendHtmlFormVar( formResNames ) print ' </TD>' print ' <TD> </TD>' print ' </TR>' print ' <TR>' print ' <TD>' sendHtmlFormVar( formResAdd, 'class="full"' ) print ' </TD>' print ' <TD colspan="2">' print ' Create a new Resource class with the above name' print ' </TD>' print ' </TR>' print ' </TABLE>' print ' </TD>' print ' </TR>' if len( formResNames[1] ) > 0: print ' <TR>' print ' <TD colspan="1">' print ' ' print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD>' print ' <TABLE class="fullbox">' print ' <COLGROUP>' print ' <COL width="50%">' print ' <COL width="50%">' print ' </COLGROUP>' print ' <THEAD>' print ' <TR>' print ' <TD class="fullbox">Name</TD>' print ' <TD class="fullbox">Actions</TD>' print ' </TR>' print ' </THEAD>' for i, resName in enumerate( formResNames[1] ): print ' <TR>' print ' <TD class="fullbox">' + resName + '</TD>' print ' <TD class="fullbox">' print ' <A href="#' + resName + '">Edit</A>' formVar = allResDel[resName] sendHtmlFormVar( formVar, 'class="link"' ) print ' </TD>' print ' </TR>' print ' </TABLE>' print ' </TD>' print ' </TR>' for resName in formResNames[1]: print ' <TR>' print ' <TD>' print ' <HR>' print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD>' print ' <TABLE class="full">' print ' <COLGROUP>' print ' <COL width="10%">' print ' <COL width="90%">' print ' </COLGROUP>' print ' <TR>' print ' <TD colspan="2" align="center" class="heading">' print ' <A name="' + resName + '">Resource Class: ' + resName + '</A>' print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD colspan="2" align="center">Simple Type Enforcement Types</TD>' print ' </TR>' print ' <TR>' print ' <TD colspan="2">' formVar = allResStes[resName]; sendHtmlFormVar( formVar, 'class="full" size="4" multiple"' ) print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD>' formVar = allResSteDel[resName]; sendHtmlFormVar( formVar, 'class="full"' ) print ' </TD>' print ' <TD>' print ' Delete the type(s) selected above' print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD colspan="2">' stSet = Set( formSteTypes[1] ) resSet = Set( allResStes[resName][1] ) formVar = allResSte[resName] formVar[1] = [] for steType in stSet.difference( resSet ): formVar[1].append( steType ) formVar[1].sort( ) sendHtmlFormVar( formVar, 'class="full" size="2" multiple"' ) print ' </TD>' print ' </TR>' print ' <TR>' print ' <TD>' formVar = allResSteAdd[resName]; sendHtmlFormVar( formVar, 'class="full"' ) print ' </TD>' print ' <TD>' print ' Add the type(s) selected above' print ' </TD>' print ' </TR>' print ' </TABLE>' print ' </TD>' print ' </TR>' print '</TABLE>'def checkXmlData( ): global xmlIncomplete global formPolicyName, formPolicyOrder global formChWallTypes, formSteTypes, formCSNames # Validate the Policy Header requirements if ( len( formPolicyName[1] ) == 0 ): msg = '' msg = msg + 'The XML policy schema requires that the Policy ' msg = msg + 'Information Name field have a value.' formatXmlGenError( msg ) if formPolicyOrder[1] == 'v_ChWall': if len( formChWallTypes[1] ) == 0: msg = '' msg = msg + 'You have specified the primary policy to be ' msg = msg + 'Chinese Wall but have not created any Chinese ' msg = msg + 'Wall types. Please create some Chinese Wall ' msg = msg + 'types or change the primary policy.' formatXmlGenError( msg ) if formPolicyOrder[1] == 'v_Ste': if len( formSteTypes[1] ) == 0: msg = '' msg = msg + 'You have specified the primary policy to be ' msg = msg + 'Simple Type Enforcement but have not created ' msg = msg + 'any Simple Type Enforcement types. Please create ' msg = msg + 'some Simple Type Enforcement types or change the ' msg = msg + 'primary policy.' formatXmlGenError( msg )def sendXmlHeaders( ): # HTML headers print 'Content-Type: text/xml' print 'Content-Disposition: attachment; filename=security_policy.xml' printdef sendPolicyXml( ): print '<?xml version="1.0"?>' print '<SecurityPolicyDefinition xmlns="http://www.ibm.com"' print ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' print ' xsi:schemaLocation="http://www.ibm.com security_policy.xsd">' # Policy header sendPHeaderXml( ) # Policy (types) sendPSteXml( ) sendPChWallXml( ) # Policy Labels (subjects and objects) print '<SecurityLabelTemplate>' sendPLSubXml( ) sendPLObjXml( ) print '</SecurityLabelTemplate>' print '</SecurityPolicyDefinition>'def sendPHeaderXml( ): global formPolicyName, formPolicyUrl, formPolicyRef, formPolicyDate, formPolicyNSUrl # Policy header definition print '<PolicyHeader>' print ' <PolicyName>' + formPolicyName[1] + '</PolicyName>' print ' <Version>1.0</Version>' if len( formPolicyUrl[1] ) > 0: print ' <PolicyUrl>' + formPolicyUrl[1] + '</PolicyUrl>' if len( formPolicyRef[1] ) > 0: print ' <Reference>' + formPolicyRef[1] + '</Reference>' if len( formPolicyDate[1] ) > 0: print ' <Date>' + formPolicyDate[1] + '</Date>' if len( formPolicyNSUrl[1] ) > 0: print ' <NameSpaceUrl>' + formPolicyNSUrl[1] + '</NameSpaceUrl>' print '</PolicyHeader>'def sendPSteXml( ): global formPolicyOrder, formSteTypes # Simple Type Enforcement... if len( formSteTypes[1] ) == 0: return if formPolicyOrder[1] == 'v_Ste': print '<SimpleTypeEnforcement priority="PrimaryPolicyComponent">' else: print '<SimpleTypeEnforcement>' print ' <SimpleTypeEnforcementTypes>' for steType in formSteTypes[1]: print ' <Type>' + steType + '</Type>' print ' </SimpleTypeEnforcementTypes>' print '</SimpleTypeEnforcement>'def sendPChWallXml( ): global formPolicyOrder, formChWallTypes global formCSNames, allCSMTypes # Chinese Wall... if len( formChWallTypes[1] ) == 0: return if formPolicyOrder[1] == 'v_ChWall': print '<ChineseWall priority="PrimaryPolicyComponent">' else: print '<ChineseWall>' print ' <ChineseWallTypes>' for chWallType in formChWallTypes[1]: print ' <Type>' + chWallType + '</Type>' print ' </ChineseWallTypes>' # Chinese Wall Conflict Sets (if any) ... if len( formCSNames[1] ) > 0: print ' <ConflictSets>' for cs in formCSNames[1]: formVar = allCSMTypes[cs] if len( formVar[1] ) == 0: continue print ' <Conflict name="' + cs + '">' for csm in formVar[1]: print ' <Type>' + csm + '</Type>' print ' </Conflict>' print ' </ConflictSets>' print '</ChineseWall>'def sendPLSubXml( ): global formVmNames, allVmChWs, allVmStes # Virtual machines... if len( formVmNames[1] ) == 0: return print ' <SubjectLabels bootstrap="' + formVmNameDom0[1] + '">' for vmName in formVmNames[1]: print ' <VirtualMachineLabel>' print ' <Name>' + vmName + '</Name>' formVar = allVmStes[vmName] if len( formVar[1] ) > 0: print ' <SimpleTypeEnforcementTypes>' for ste in formVar[1]: print ' <Type>' + ste + '</Type>' print ' </SimpleTypeEnforcementTypes>' formVar = allVmChWs[vmName] if len( formVar[1] ) > 0: print ' <ChineseWallTypes>' for chw in formVar[1]: print ' <Type>' + chw + '</Type>'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -