Changeset 6633 for TI12-security/branches
- Timestamp:
- 24/02/10 16:01:49 (11 years ago)
- Location:
- TI12-security/branches/ndg-security-1.5.x
- Files:
-
- 3 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
TI12-security/branches/ndg-security-1.5.x/ndg_security_server/ndg/security/server/wsgi/authn.py
r6440 r6633 325 325 ndg.security.server.wsgi.openid.relyingparty.OpenIDRelyingPartyMiddleware 326 326 which performs a similar function. 327 """ 327 """ 328 _sslAuthnSucceeded = lambda self: self.environ.get( 329 AuthKitSSLAuthnMiddleware.AUTHN_SUCCEEDED_ENVIRON_KEYNAME, 330 False) 331 332 sslAuthnSucceeded = property(fget=_sslAuthnSucceeded, 333 doc="Boolean indicating SSL authentication " 334 "has succeeded in " 335 "AuthKitSSLAuthnMiddleware upstream of " 336 "this middleware") 328 337 329 338 @NDGSecurityMiddlewareBase.initCall … … 369 378 "'REMOTE_USER' environment variable is set") 370 379 371 _sslAuthnSucceeded = lambda self: self.environ.get(372 AuthKitSSLAuthnMiddleware.AUTHN_SUCCEEDED_ENVIRON_KEYNAME,373 False)374 375 sslAuthnSucceeded = property(fget=_sslAuthnSucceeded,376 doc="Boolean indicating SSL authentication "377 "has succeeded in "378 "AuthKitSSLAuthnMiddleware upstream of "379 "this middleware")380 381 380 def __init__(self, app, app_conf, **local_conf): 382 381 super(AuthKitRedirectResponseMiddleware, self).__init__(app, app_conf, -
TI12-security/branches/ndg-security-1.5.x/ndg_security_server/ndg/security/server/wsgi/authz/__init__.py
r6284 r6633 586 586 uri=attributeAuthorityURI) 587 587 for assertion in response.assertions: 588 credentialWallet.addCredential(assertion) 588 credentialWallet.addCredential(assertion, 589 attributeAuthorityURI=attributeAuthorityURI, 590 verifyCredential=False) 589 591 590 592 log.debug("SamlPIPMiddleware.attributeQuery: updating Credential " -
TI12-security/branches/ndg-security-1.5.x/ndg_security_server/ndg/security/server/wsgi/myproxy/__init__.py
r6202 r6633 142 142 """Wrap MyProxy logon method as a WSGI app 143 143 """ 144 if environ ['HTTP_METHOD']== 'GET':144 if environ.get('REQUEST_METHOD') == 'GET': 145 145 # No certificate request passed with GET call 146 146 # TODO: retire this method? - keys are generated here instead of … … 148 148 certReq = None 149 149 150 elif environ ['HTTP_METHOD']== 'POST':150 elif environ.get('REQUEST_METHOD') == 'POST': 151 151 152 152 pemCertReq = environ[ … … 160 160 status = self.getStatusMessage(httplib.UNAUTHORIZED) 161 161 response = ("HTTP request method %r not recognised for this " 162 "request " % environ['HTTP_METHOD']) 162 "request " % environ.get('REQUEST_METHOD', 163 '<Not set>')) 163 164 164 165 try: -
TI12-security/branches/ndg-security-1.5.x/ndg_security_server/ndg/security/server/wsgi/saml/__init__.py
r6069 r6633 223 223 response = soapResponse.serialize() 224 224 225 log.debug("SOAPAttributeInterfaceMiddleware.__call__: sending response " 226 "...\n\n%s", 227 response) 225 228 start_response("200 OK", 226 229 [('Content-length', str(len(response))), -
TI12-security/branches/ndg-security-1.5.x/ndg_security_server/ndg/security/server/wsgi/ssl.py
r6440 r6633 56 56 CACERT_FILEPATH_LIST_OPTNAME = 'caCertFilePathList' 57 57 CLIENT_CERT_DN_MATCH_LIST_OPTNAME = 'clientCertDNMatchList' 58 CLIENT_CERT_DN_MATCH_LIST_SEP_PAT = re.compile(',\s*') 58 59 SSL_KEYNAME_OPTNAME = 'sslKeyName' 59 60 SSL_CLIENT_CERT_KEYNAME_OPTNAME = 'sslClientCertKeyName' … … 78 79 AUTHN_SUCCEEDED_ENVIRON_KEYNAME = ('ndg.security.server.wsgi.ssl.' 79 80 'ApacheSSLAuthnMiddleware.authenticated') 80 81 81 82 def __init__(self, app, global_conf, prefix=PARAM_PREFIX, **app_conf): 82 83 … … 212 213 if isinstance(value, basestring): 213 214 # Try parsing a space separated list of file paths 214 self.__clientCertDNMatchList = [X500DN(dn=dn) 215 for dn in value.split()] 215 pat = ApacheSSLAuthnMiddleware.CLIENT_CERT_DN_MATCH_LIST_SEP_PAT 216 dnList = pat.split(value) 217 self.__clientCertDNMatchList = [X500DN(dn=dn) for dn in dnList] 216 218 217 219 elif isinstance(value, (list, tuple)): … … 225 227 raise TypeError('Expecting a string, or %r type for "%s" ' 226 228 'list item; got %r' % 227 (X500DN,228 ApacheSSLAuthnMiddleware.CLIENT_CERT_DN_MATCH_LIST_OPTNAME,229 type(dn)))229 (X500DN, 230 ApacheSSLAuthnMiddleware.CLIENT_CERT_DN_MATCH_LIST_OPTNAME, 231 type(dn))) 230 232 231 233 else: -
TI12-security/branches/ndg-security-1.5.x/ndg_security_test/ndg/security/test/unit/authz/msi/policy-1.1.xml
r6022 r6633 25 25 </Attributes> 26 26 </Target> 27 <!-- Test inclusion of ampersand --> 28 <Target> 29 <URIPattern>^/test_securedURI[?&]MyQueryParam=100</URIPattern> 30 <Attributes> 31 <Attribute> 32 <Name>urn:siteA:security:authz:1.0:attr:staff</Name> 33 <AttributeAuthorityURI>http://localhost:7443/AttributeAuthority</AttributeAuthorityURI> 34 </Attribute> 35 </Attributes> 36 </Target> 27 37 </Policy> -
TI12-security/branches/ndg-security-1.5.x/ndg_security_test/ndg/security/test/unit/authz/msi/test_msi.py
r6069 r6633 59 59 assert(attribute.attributeAuthorityURI) 60 60 61 61 62 62 63 class PIPPlaceholder(PIPBase): … … 81 82 PERMITTED_RESOURCE_URI = '/test_securedURI' 82 83 DENIED_RESOURCE_URI = '/test_accessDeniedToSecuredURI' 84 WITH_ESCAPE_CHARS_RESOURCE_URI = '/test_securedURI?MyQueryParam=100' 83 85 84 86 def setUp(self): … … 104 106 self.assert_(response.status == Response.DECISION_DENY) 105 107 108 def test03WithEscapeCharsInPolicy(self): 109 self.request.resource[Resource.URI_NS 110 ] = PDPTestCase.WITH_ESCAPE_CHARS_RESOURCE_URI 111 response = self.pdp.evaluate(self.request) 112 113 self.assert_(response.status == Response.DECISION_PERMIT) 114 106 115 107 116 if __name__ == "__main__": -
TI12-security/branches/ndg-security-1.5.x/ndg_security_test/ndg/security/test/unit/credentialwallet/test_credentialwallet.py
r6069 r6633 248 248 249 249 def setUp(self): 250 self.assertion = self._createAssertion()250 self.assertion = self._createAssertion() 251 251 252 252 def _createAssertion(self, timeNow=None, validityDuration=60*60*8, … … 322 322 self.assert_(len(wallet.credentials) == 0) 323 323 324 def test04ReplaceCredential(self): 324 def test04ClockSkewTolerance(self): 325 # Add a short lived credential but with the wallet set to allow for 326 # a clock skew of 327 shortExpiryAssertion = self._createAssertion(validityDuration=1) 328 wallet = SAMLCredentialWallet() 329 330 # Set a tolerance of five seconds 331 wallet.clockSkewTolerance = 5.*60*60 332 wallet.addCredential(shortExpiryAssertion) 333 334 self.assert_(len(wallet.credentials) == 1) 335 sleep(2) 336 wallet.audit() 337 self.assert_(len(wallet.credentials) == 1) 338 339 def test05ReplaceCredential(self): 325 340 # Replace an existing credential from a given institution with a more 326 341 # up to date one … … 332 347 wallet.addCredential(newAssertion) 333 348 self.assert_(len(wallet.credentials) == 1) 334 self.assert_(newAssertion.conditions.notOnOrAfter ==\349 self.assert_(newAssertion.conditions.notOnOrAfter == \ 335 350 wallet.credentials[ 336 351 SAMLCredentialWalletTestCase.SITEA_SAML_ISSUER_NAME 337 352 ].credential.conditions.notOnOrAfter) 338 353 339 def test0 5CredentialsFromSeparateSites(self):354 def test06CredentialsFromSeparateSites(self): 340 355 wallet = self._addCredential() 341 356 wallet.addCredential(self._createAssertion(issuerName="MySite")) 342 357 self.assert_(len(wallet.credentials) == 2) 343 358 344 def test0 6Pickle(self):359 def test07Pickle(self): 345 360 wallet = self._addCredential() 346 361 outFile = open(SAMLCredentialWalletTestCase.PICKLE_FILEPATH, 'w') … … 353 368 SAMLCredentialWalletTestCase.SITEA_ATTRIBUTEAUTHORITY_SAML_URI)) 354 369 370 self.assert_(unpickledWallet.credentials.items()[0][1].issuerName == \ 371 BaseTestCase.SITEA_SAML_ISSUER_NAME) 372 373 def test08CreateFromConfig(self): 374 wallet = SAMLCredentialWallet.fromConfig( 375 SAMLCredentialWalletTestCase.CONFIG_FILEPATH) 376 self.assert_(wallet.clockSkewTolerance == timedelta(seconds=0.01)) 377 self.assert_(wallet.userId == 'https://openid.localhost/philip.kershaw') 355 378 356 379 if __name__ == "__main__": -
TI12-security/branches/ndg-security-1.5.x/ndg_security_test/ndg/security/test/unit/credentialwallet/test_samlcredentialwallet.cfg
r6040 r6633 9 9 # $Id:$ 10 10 [DEFAULT] 11 clockSkew = 0.11 clockSkewTolerance = 0.01 12 12 userId = https://openid.localhost/philip.kershaw 13 issuerDN = /O=Site A/CN=Authorisation Service14 attributeAuthorityURI = https://localhost:5443/AttributeAuthority/saml15 queryAttributes.0 = urn:esg:first:name, FirstName, http://www.w3.org/2001/XMLSchema#string16 queryAttributes.roles = urn:siteA:security:authz:1.0:attr, , http://www.w3.org/2001/XMLSchema#string17 18 # SSL Context Proxy settings19 sslCACertDir = $NDGSEC_TEST_CONFIG_DIR/ca20 sslCertFilePath = $NDGSEC_TEST_CONFIG_DIR/pki/test.crt21 sslPriKeyFilePath = $NDGSEC_TEST_CONFIG_DIR/pki/test.key22 sslValidDNs = /C=UK/ST=Oxfordshire/O=BADC/OU=Security/CN=localhost, /O=Site A/CN=Attribute Authority -
TI12-security/branches/ndg-security-1.5.x/ndg_security_test/ndg/security/test/unit/openid/relyingparty/validation/test_validation.py
r6276 r6633 63 63 x509CertFilePath = mkDataDirPath(os.path.join('pki', 'localhost.crt')) 64 64 65 def get _current_cert(self):66 return X509.load_cert(X509StoreCtxPlaceHolder.x509CertFilePath)65 def get1_chain(self): 66 return [X509.load_cert(X509StoreCtxPlaceHolder.x509CertFilePath)] 67 67 68 68 class IdPValidationTestCase(BaseTestCase): -
TI12-security/branches/ndg-security-1.5.x/ndg_security_test/ndg/security/test/unit/wsgi/myproxy/test.ini
r6107 r6633 6 6 [DEFAULT] 7 7 username = testuser 8 #password = 8 password = testpasswd 9 9 10 10 [server:main] … … 23 23 http.auth.basic.rePathMatchList = .* 24 24 myproxy.logonFuncEnvKeyName = myProxyLogon 25 #myproxy.client.hostname = localhost 26 myproxy.client.hostname = glue.badc.rl.ac.uk 27 myproxy.client.serverDN = /O=NDG/OU=BADC/CN=glue.badc.rl.ac.uk 25 myproxy.client.hostname = localhost 26 myproxy.client.serverDN = /O=NDG/OU=BADC/CN=localhost -
TI12-security/branches/ndg-security-1.5.x/ndg_security_test/ndg/security/test/unit/wsgi/myproxy/test_myproxy.py
r6202 r6633 20 20 from paste.deploy import loadapp 21 21 22 from M2Crypto import X509 22 from M2Crypto import X509, RSA, EVP, m2 23 23 24 24 from ndg.security.test.unit import BaseTestCase … … 210 210 211 211 # Create key pair 212 nBitsForKey = 2048 212 213 keys = RSA.gen_key(nBitsForKey, m2.RSA_F4) 213 214 certReq = X509.Request() … … 224 225 certReq.set_subject_name(x509Name) 225 226 226 certReq.sign(pubKey, messageDigest)227 certReq.sign(pubKey, "md5") 227 228 228 229 pemCertReq = certReq.as_pem() -
TI12-security/branches/ndg-security-1.5.x/ndg_security_test/ndg/security/test/unit/wsgi/ssl/test.ini
r5779 r6633 23 23 ssl.caCertFilePathList = %(testConfigDir)s/ca/ndg-test-ca.crt 24 24 ssl.rePathMatchList = ^/secured/.*$ ^/restrict.* 25 ssl.clientCertDNMatchList = /O=NDG/OU=BADC/CN=test /O=localhost/OU=local/CN=test225 ssl.clientCertDNMatchList = /O=NDG/OU=BADC/CN=test, /O=localhost/OU=local client/CN=test 2
Note: See TracChangeset
for help on using the changeset viewer.