Ignore:
Timestamp:
04/11/10 13:55:40 (10 years ago)
Author:
pjkersha
Message:

Integrated SAML ESGF Group/Role? attribute value type into SAML Attribute Authority client unit tests.

File:
1 edited

Legend:

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

    r7155 r7698  
    2828                                        AttributeQuerySOAPBinding,  
    2929                                        AttributeQuerySslSOAPBinding) 
    30 from ndg.security.common.saml_utils.esg import (EsgSamlNamespaces, 
    31                                                 EsgDefaultQueryAttributes) 
     30from ndg.security.common.saml_utils.esgf import (ESGFSamlNamespaces, 
     31                                                 ESGFDefaultQueryAttributes, 
     32                                                 ESGFGroupRoleAttributeValue) 
     33from ndg.security.common.saml_utils.esgf.xml.etree import ( 
     34                                        ESGFGroupRoleAttributeValueElementTree, 
     35                                        ESGFResponseElementTree) 
     36from ndg.security.common.utils.etree import prettyPrint 
    3237from ndg.security.test.unit.attributeauthorityclient import \ 
    3338                                        AttributeAuthorityClientBaseTestCase 
    34 from ndg.security.common.utils.etree import prettyPrint 
    35  
     39    
    3640    
    3741class AttributeAuthoritySAMLInterfaceTestCase( 
     
    6468        attributeQuery.subject = Subject() 
    6569        attributeQuery.subject.nameID = NameID() 
    66         attributeQuery.subject.nameID.format = EsgSamlNamespaces.NAMEID_FORMAT 
     70        attributeQuery.subject.nameID.format = ESGFSamlNamespaces.NAMEID_FORMAT 
    6771        attributeQuery.subject.nameID.value = _cfg['subject'] 
    6872        xsStringNs = SAMLConstants.XSD_NS+"#"+\ 
    6973                                        XSStringAttributeValue.TYPE_LOCAL_NAME 
    7074        fnAttribute = Attribute() 
    71         fnAttribute.name = EsgSamlNamespaces.FIRSTNAME_ATTRNAME 
     75        fnAttribute.name = ESGFSamlNamespaces.FIRSTNAME_ATTRNAME 
    7276        fnAttribute.nameFormat = xsStringNs 
    7377        fnAttribute.friendlyName = "FirstName" 
     
    7680     
    7781        lnAttribute = Attribute() 
    78         lnAttribute.name = EsgSamlNamespaces.LASTNAME_ATTRNAME 
     82        lnAttribute.name = ESGFSamlNamespaces.LASTNAME_ATTRNAME 
    7983        lnAttribute.nameFormat = xsStringNs 
    8084        lnAttribute.friendlyName = "LastName" 
     
    8387     
    8488        emailAddressAttribute = Attribute() 
    85         emailAddressAttribute.name = EsgSamlNamespaces.EMAILADDRESS_ATTRNAME 
     89        emailAddressAttribute.name = ESGFSamlNamespaces.EMAILADDRESS_ATTRNAME 
    8690        emailAddressAttribute.nameFormat = xsStringNs 
    8791        emailAddressAttribute.friendlyName = "emailAddress" 
     
    132136        attributeQuery.subject = Subject()   
    133137        attributeQuery.subject.nameID = NameID() 
    134         attributeQuery.subject.nameID.format = EsgSamlNamespaces.NAMEID_FORMAT 
     138        attributeQuery.subject.nameID.format = ESGFSamlNamespaces.NAMEID_FORMAT 
    135139        attributeQuery.subject.nameID.value = _cfg['subject'] 
    136140        xsStringNs = SAMLConstants.XSD_NS+"#"+\ 
     
    172176        attributeQuery.subject = Subject()   
    173177        attributeQuery.subject.nameID = NameID() 
    174         attributeQuery.subject.nameID.format = EsgSamlNamespaces.NAMEID_FORMAT 
     178        attributeQuery.subject.nameID.format = ESGFSamlNamespaces.NAMEID_FORMAT 
    175179        attributeQuery.subject.nameID.value = _cfg['subject'] 
    176180        xsStringNs = SAMLConstants.XSD_NS+"#"+\ 
     
    212216        attributeQuery.subject = Subject()   
    213217        attributeQuery.subject.nameID = NameID() 
    214         attributeQuery.subject.nameID.format = EsgSamlNamespaces.NAMEID_FORMAT 
     218        attributeQuery.subject.nameID.format = ESGFSamlNamespaces.NAMEID_FORMAT 
    215219        attributeQuery.subject.nameID.value = _cfg['subject'] 
    216220        xsStringNs = SAMLConstants.XSD_NS+"#"+\ 
     
    238242        self.assert_(response.status.statusCode.value==\ 
    239243                     StatusCode.INVALID_ATTR_NAME_VALUE_URI) 
    240          
    241     def test05AttributeQuerySOAPBindingInterface(self): 
    242         _cfg = self.cfg['test05AttributeQuerySOAPBindingInterface'] 
     244              
     245    def test05AttributeQueryWithESGFAttributeType(self): 
     246        # Test interface with custom ESGF Group/Role attribute type 
     247        thisSection = 'test05AttributeQueryWithESGFAttributeType' 
     248        _cfg = self.cfg[thisSection] 
     249         
     250        attributeQuery = AttributeQuery() 
     251        attributeQuery.version = SAMLVersion(SAMLVersion.VERSION_20) 
     252        attributeQuery.id = str(uuid4()) 
     253        attributeQuery.issueInstant = datetime.utcnow() 
     254         
     255        attributeQuery.issuer = Issuer() 
     256        attributeQuery.issuer.format = Issuer.X509_SUBJECT 
     257        attributeQuery.issuer.value = "/CN=Authorisation Service/O=Site A"     
     258                         
     259        attributeQuery.subject = Subject()   
     260        attributeQuery.subject.nameID = NameID() 
     261        attributeQuery.subject.nameID.format = ESGFSamlNamespaces.NAMEID_FORMAT 
     262        attributeQuery.subject.nameID.value = _cfg['subject'] 
     263         
     264        groupRoleAttribute = Attribute() 
     265        groupRoleAttribute.name = 'urn:esg:sitea:grouprole' 
     266        groupRoleAttribute.nameFormat = \ 
     267            ESGFGroupRoleAttributeValue.TYPE_LOCAL_NAME 
     268         
     269        attributeQuery.attributes.append(groupRoleAttribute)  
     270 
     271        binding = SOAPBinding.fromConfig( 
     272                     AttributeAuthoritySAMLInterfaceTestCase.CONFIG_FILEPATH,  
     273                     prefix='saml.', 
     274                     section=thisSection) 
     275         
     276        response = binding.send(attributeQuery, _cfg['uri']) 
     277         
     278        samlResponseElem = ResponseElementTree.toXML(response) 
     279         
     280        print("SAML Response ...") 
     281        print(ElementTree.tostring(samlResponseElem)) 
     282        print("Pretty print SAML Response ...") 
     283        print(prettyPrint(samlResponseElem)) 
     284         
     285        self.assert_(response.assertions[0].attributeStatements[0].attributes[0 
     286            ].attributeValues[0].value == ('siteagroup', 'default')) 
     287         
     288        self.assert_(response.status.statusCode.value == StatusCode.SUCCESS_URI) 
     289        
     290    def test06AttributeQuerySOAPBindingInterface(self): 
     291        _cfg = self.cfg['test06AttributeQuerySOAPBindingInterface'] 
    243292         
    244293        binding = AttributeQuerySOAPBinding() 
    245294         
    246295        binding.subjectID = AttributeAuthoritySAMLInterfaceTestCase.OPENID_URI 
    247         binding.subjectIdFormat = EsgSamlNamespaces.NAMEID_FORMAT 
     296        binding.subjectIdFormat = ESGFSamlNamespaces.NAMEID_FORMAT 
    248297        binding.issuerName = \ 
    249298            str(AttributeAuthoritySAMLInterfaceTestCase.VALID_REQUESTOR_IDS[0]) 
    250299        binding.issuerFormat = Issuer.X509_SUBJECT 
    251300         
    252         binding.queryAttributes = EsgDefaultQueryAttributes.ATTRIBUTES 
     301        binding.queryAttributes = ESGFDefaultQueryAttributes.ATTRIBUTES 
    253302         
    254303        response = binding.send(uri=_cfg['uri']) 
     
    262311        self.assert_(response.status.statusCode.value==StatusCode.SUCCESS_URI) 
    263312 
    264     def test06AttributeQueryFromConfig(self): 
    265         thisSection = 'test06AttributeQueryFromConfig' 
     313    def test07AttributeQueryFromConfig(self): 
     314        thisSection = 'test07AttributeQueryFromConfig' 
    266315        _cfg = self.cfg[thisSection] 
    267316         
     
    280329        self.assert_(response.status.statusCode.value==StatusCode.SUCCESS_URI) 
    281330         
    282     def test07AttributeQuerySslSOAPBindingInterface(self): 
    283         thisSection = 'test07AttributeQuerySslSOAPBindingInterface' 
     331    def test08AttributeQuerySslSOAPBindingInterface(self): 
     332        thisSection = 'test08AttributeQuerySslSOAPBindingInterface' 
    284333        _cfg = self.cfg[thisSection] 
    285334         
Note: See TracChangeset for help on using the changeset viewer.