Changeset 6558 for TI12-security
- Timestamp:
- 11/02/10 17:09:43 (10 years ago)
- Location:
- TI12-security/trunk/ndg_security_saml/saml
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
TI12-security/trunk/ndg_security_saml/saml/saml2/core.py
r6553 r6558 328 328 329 329 # "Permit" decision type 330 PERMIT = "Permit"330 PERMIT_STR = "Permit" 331 331 332 332 # "Deny" decision type 333 DENY = "Deny"333 DENY_STR = "Deny" 334 334 335 335 # "Indeterminate" decision type 336 INDETERMINATE = "Indeterminate"337 338 TYPES = (PERMIT , DENY, INDETERMINATE)336 INDETERMINATE_STR = "Indeterminate" 337 338 TYPES = (PERMIT_STR, DENY_STR, INDETERMINATE_STR) 339 339 340 340 __slots__ = ('__value',) … … 347 347 if not isinstance(value, basestring): 348 348 raise TypeError('Expecting string type for "value" attribute; got ' 349 ' instead' % type(value))349 '%r instead' % type(value)) 350 350 351 351 if value not in DecisionType.TYPES: 352 352 raise AttributeError('Permissable decision types are %r; got %r ' 353 'instead' % (DecisionType.TYPES, 354 value)) 353 'instead' % (DecisionType.TYPES, value)) 355 354 self.__value = value 356 355 … … 362 361 def __str__(self): 363 362 return self.__value 363 364 def __eq__(self, decision): 365 return self.__value == decision.value 366 367 368 class PermitDecisionType(DecisionType): 369 """Permit authorisation Decision""" 370 def __init__(self): 371 super(PermitDecisionType, self).__init__(DecisionType.PERMIT_STR) 372 373 def _setValue(self): 374 raise AttributeError("can't set attribute") 375 376 377 class DenyDecisionType(DecisionType): 378 """Deny authorisation Decision""" 379 def __init__(self): 380 super(DenyDecisionType, self).__init__(DecisionType.DENY_STR) 381 382 def _setValue(self, value): 383 raise AttributeError("can't set attribute") 384 385 386 class IndeterminateDecisionType(DecisionType): 387 """Indeterminate authorisation Decision""" 388 def __init__(self): 389 super(IndeterminateDecisionType, self).__init__( 390 DecisionType.INDETERMINATE_STR) 391 392 def _setValue(self, value): 393 raise AttributeError("can't set attribute") 394 395 # Add instances of each for convenience 396 DecisionType.PERMIT = PermitDecisionType() 397 DecisionType.DENY = DenyDecisionType() 398 DecisionType.INDETERMINATE = IndeterminateDecisionType() 364 399 365 400 … … 401 436 self.__resource = None 402 437 403 self.__decision = DecisionType (DecisionType.INDETERMINATE)438 self.__decision = DecisionType.INDETERMINATE 404 439 self.__actions = TypedList(Action) 405 440 self.__evidence = None … … 506 541 @param value: the decision of the authorization request 507 542 ''' 508 if not isinstance(value, basestring):543 if not isinstance(value, DecisionType): 509 544 raise TypeError('Expecting %r type for "decision" attribute; ' 510 'got instead' % (DecisionType, type(value)))545 'got %r instead' % (DecisionType, type(value))) 511 546 self.__decision = value 547 548 decision = property(_getDecision, _setDecision, 549 doc="Authorization decision as a DecisionType instance") 512 550 513 551 @property -
TI12-security/trunk/ndg_security_saml/saml/test/test_saml.py
r6553 r6558 24 24 AuthzDecisionStatement, Assertion, AttributeQuery, 25 25 Response, Issuer, Subject, NameID, StatusCode, 26 StatusMessage, Status, Conditions, 26 StatusMessage, Status, Conditions, DecisionType, 27 27 XSStringAttributeValue, Action, 28 28 AuthzDecisionQuery) … … 487 487 488 488 489 def test0 5CreateAuthzDecisionQueryResponse(self):489 def test09CreateAuthzDecisionQueryResponse(self): 490 490 response = Response() 491 response.issueInstant = datetime.utcnow() 491 now = datetime.utcnow() 492 response.issueInstant = now 492 493 493 494 # Make up a request ID that this response is responding to … … 498 499 response.issuer = Issuer() 499 500 response.issuer.format = Issuer.X509_SUBJECT 500 response.issuer.value = \ 501 SAMLTestCase.ISSUER_DN 501 response.issuer.value = SAMLTestCase.ISSUER_DN 502 502 503 503 response.status = Status() … … 508 508 509 509 assertion = Assertion() 510 assertion.version = SAMLVersion(SAMLVersion.VERSION_20) 511 assertion.id = str(uuid4()) 512 assertion.issueInstant = now 513 510 514 authzDecisionStatement = AuthzDecisionStatement() 515 authzDecisionStatement.decision = DecisionType.PERMIT 511 516 authzDecisionStatement.resource = SAMLTestCase.RESOURCE_URI 512 517 authzDecisionStatement.actions.append(Action()) … … 515 520 assertion.authzDecisionStatements.append(authzDecisionStatement) 516 521 517 # assertion.subject = Subject() 518 # assertion.subject.nameID = NameID() 519 # assertion.subject.nameID.format = SAMLTestCase.NAMEID_FORMAT 520 # assertion.subject.nameID.value = SAMLTestCase.NAMEID_VALUE 521 # 522 # assertion.issuer = Issuer() 523 # assertion.issuer.format = Issuer.X509_SUBJECT 524 # assertion.issuer.value = SAMLTestCase.ISSUER_DN 522 # Add a conditions statement for a validity of 8 hours 523 assertion.conditions = Conditions() 524 assertion.conditions.notBefore = now 525 assertion.conditions.notOnOrAfter = now + timedelta(seconds=60*60*8) 526 527 assertion.subject = Subject() 528 assertion.subject.nameID = NameID() 529 assertion.subject.nameID.format = SAMLTestCase.NAMEID_FORMAT 530 assertion.subject.nameID.value = SAMLTestCase.NAMEID_VALUE 531 532 assertion.issuer = Issuer() 533 assertion.issuer.format = Issuer.X509_SUBJECT 534 assertion.issuer.value = SAMLTestCase.ISSUER_DN 525 535 526 536 response.assertions.append(assertion) -
TI12-security/trunk/ndg_security_saml/saml/xml/etree.py
r6553 r6558 371 371 372 372 for authzDecisionStatement in assertion.authzDecisionStatements: 373 authzDecisionStatementElem = AuthzDecisionStatementElementTree.toXML( 374 authzDecisionStatement, 375 **authzDecisionValueElementTreeFactoryKw) 373 authzDecisionStatementElem = \ 374 AuthzDecisionStatementElementTree.toXML(authzDecisionStatement) 376 375 elem.append(authzDecisionStatementElem) 377 376
Note: See TracChangeset
for help on using the changeset viewer.