Ignore:
Timestamp:
16/08/10 13:54:09 (11 years ago)
Author:
pjkersha
Message:

Incomplete - task 2: XACML-Security Integration

  • added unit tests for XACML Context handler
Location:
TI12-security/trunk/NDGSecurity/python/ndg_security_test/ndg/security/test/unit
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/NDGSecurity/python/ndg_security_test/ndg/security/test/unit/__init__.py

    r7168 r7327  
    131131        X500DN.fromString("/O=Site A/CN=Authorisation Service"),  
    132132        X500DN.fromString("/O=Site B/CN=Authorisation Service"), 
    133         X500DN.fromString('/CN=test/O=NDG/OU=BADC') 
     133        X500DN.fromString('/CN=test/O=NDG/OU=BADC'), 
     134        X500DN.fromString('/O=NDG/OU=Security/CN=localhost') 
    134135    ) 
    135136     
  • TI12-security/trunk/NDGSecurity/python/ndg_security_test/ndg/security/test/unit/x509/test_x509.py

    r6861 r7327  
    2525 
    2626from ConfigParser import SafeConfigParser 
     27 
    2728from ndg.security.test.unit import BaseTestCase 
    28  
    29 import warnings 
    30 _warningMsg = None 
    31 _origWarn = warnings.warn 
    32 def _warnWrapper(*arg, **kw): 
    33     global _warningMsg 
    34     _warningMsg = arg[0] 
    35     _origWarn(*arg, **kw) 
    36  
    37 warnings.warn = _warnWrapper 
    38  
    39 from ndg.security.common.X509 import X509CertRead, X509CertParse, X500DN, \ 
    40     X509Stack, X509StackEmptyError, SelfSignedCert, X509CertIssuerNotFound 
     29from ndg.security.common.X509 import (X509CertRead, X509CertParse, X500DN,  
     30    X509Stack, X509StackEmptyError, SelfSignedCert, X509CertIssuerNotFound) 
     31 
    4132 
    4233class X509TestCase(BaseTestCase): 
    4334    """Unit test X509 module""" 
    4435    CA_DIR = os.path.join(BaseTestCase.NDGSEC_TEST_CONFIG_DIR, 'ca') 
    45      
    46     def __del__(self): 
    47         warnings.warn = _origWarn 
    48         if getattr(super(X509TestCase, self), "__del__", None): 
    49             super(X509TestCase, self).__del__() 
    5036         
    5137    def setUp(self): 
     
    189175        self.test01X509CertRead() 
    190176         
    191         # Set ridiculous bounds for expiry warning to ensure a warning message 
    192         # is output 
    193         self.assert_(self.x509Cert.isValidTime(nDaysBeforeExpiryLimit=36500),  
    194                                                "Certificate has expired") 
    195         if not _warningMsg: 
    196             self.fail("No warning message was set") 
    197         else: 
    198             print("PASSED - Got warning message from X509Cert." 
    199                   "isValidTime: %s" % _warningMsg) 
    200  
    201     def test10ReadStackFromCADir(self): 
    202          
    203         stack = X509Stack.fromCADir(X509TestCase.CA_DIR) 
    204         self.assert_(stack) 
    205         self.assert_(len(stack) > 0) 
     177        warningMsg = None 
     178         
     179        # Capture stderr 
     180        try: 
     181            warningOutput = StringIO() 
     182            _stderr = sys.stderr 
     183            sys.stderr = warningOutput 
     184             
     185            # Set ridiculous bounds for expiry warning to ensure a warning  
     186            # message is output 
     187            validStatus = self.x509Cert.isValidTime( 
     188                                                nDaysBeforeExpiryLimit=36500) 
     189            self.assert_(validStatus, "Certificate has expired") 
     190        finally: 
     191            sys.stderr = _stderr 
     192            warningMsg = warningOutput.getvalue() 
     193             
     194        self.assert_("UserWarning" in str(warningMsg),  
     195                     "No warning message was set") 
     196         
     197        print("PASSED - Got warning message from X509Cert.isValidTime: %s" %  
     198              warningMsg) 
     199 
    206200         
    207201class X500DNTestCase(BaseTestCase): 
     
    215209        self.assert_(str(dn)) 
    216210        print(dn) 
     211         
     212    def test02VerifyCommaSeparatedDnParsing(self): 
     213        # Test parsing for ',' delimited fields 
     214        dnStr = 'O=NDG, OU=Security, CN=localhost' 
     215        dn = X500DN.fromString(dnStr) 
     216        self.assert_(str(dn)) 
     217        print(dn) 
     218         
    217219                                       
    218220if __name__ == "__main__": 
  • TI12-security/trunk/NDGSecurity/python/ndg_security_test/ndg/security/test/unit/xacml/pip-mapping.txt

    r7314 r7327  
    1919 
    2020# Entries are whitespace delimited <attribute id> <attribute authority> 
    21 urn:ndg:security:attributes https://localhost:5443/AttributeAuthority 
     21urn:siteA:security:authz:1.0:attr https://localhost:5443/AttributeAuthority 
    2222myattributeid https://myattributeauthority.ac.uk/ 
    2323http://someotherattributeid.schema https://another.ac.uk/attributeservice/ 
  • TI12-security/trunk/NDGSecurity/python/ndg_security_test/ndg/security/test/unit/xacml/test_saml_pip.py

    r7314 r7327  
    3838    CONFIG_FILEPATH = path.join(THIS_DIR, CONFIG_FILENAME) 
    3939     
    40     NDGS_ATTR_ID = 'urn:ndg:security:attributes' 
     40    NDGS_ATTR_ID = BaseTestCase.ATTRIBUTE_NAMES[0] 
    4141    OPENID_ATTR_ID = 'urn:esg:openid' 
    42     OPENID = 'https://localhost:7443/pjkershaw' 
    4342     
    4443    CLNT_CERT_FILEPATH = path.join(BaseTestCase.PKI_DIR, 'localhost.crt') 
     
    8382                                                            openidAttr.dataType) 
    8483         
    85         openidAttrVal = anyUriAttrValue(self.__class__.OPENID) 
     84        openidAttrVal = anyUriAttrValue(self.__class__.OPENID_URI) 
    8685        openidAttr.attributeValues.append(openidAttrVal)  
    8786         
     
    115114        ctx = self._createXacmlRequestCtx() 
    116115         
    117         attributes = pip.attributeQuery(ctx, designator) 
    118         self.assert_(len(attributes) > 0) 
     116        attributeValues = pip.attributeQuery(ctx, designator) 
     117        self.assert_(len(attributeValues) > 0) 
     118        print("PIP retrieved attribute values %r" % attributeValues) 
    119119         
    120120    def test04InitFromConfigFile(self): 
     
    122122        pip = PIP.fromConfig(self.__class__.CONFIG_FILEPATH) 
    123123        self.assert_(pip.mappingFilePath) 
    124          
    125         for i in dir(PIP): 
    126             print("%s = %r" % (i, getattr(pip, i))) 
     124 
    127125         
    128126if __name__ == "__main__": 
Note: See TracChangeset for help on using the changeset viewer.