def create_authz_decision_query_response(cls): """Helper method for Authz Decision Response""" response = Response() now = datetime.utcnow() response.issueInstant = now # Make up a request ID that this response is responding to response.inResponseTo = str(uuid4()) response.id = str(uuid4()) response.version = SAMLVersion(SAMLVersion.VERSION_20) response.issuer = Issuer() response.issuer.format = Issuer.X509_SUBJECT response.issuer.value = cls.ISSUER_DN response.status = Status() response.status.statusCode = StatusCode() response.status.statusCode.value = StatusCode.SUCCESS_URI response.status.statusMessage = StatusMessage() response.status.statusMessage.value = "Response created successfully" assertion = Assertion() assertion.version = SAMLVersion(SAMLVersion.VERSION_20) assertion.id = str(uuid4()) assertion.issueInstant = now authzDecisionStatement = AuthzDecisionStatement() authzDecisionStatement.decision = DecisionType.PERMIT authzDecisionStatement.resource = cls.RESOURCE_URI authzDecisionStatement.actions.append(Action()) authzDecisionStatement.actions[-1].namespace = Action.GHPP_NS_URI authzDecisionStatement.actions[-1].value = Action.HTTP_GET_ACTION assertion.authzDecisionStatements.append(authzDecisionStatement) # Add a conditions statement for a validity of 8 hours assertion.conditions = Conditions() assertion.conditions.notBefore = now assertion.conditions.notOnOrAfter = now + timedelta(seconds=60*60*8) assertion.subject = Subject() assertion.subject.nameID = NameID() assertion.subject.nameID.format = cls.NAMEID_FORMAT assertion.subject.nameID.value = cls.NAMEID_VALUE assertion.issuer = Issuer() assertion.issuer.format = Issuer.X509_SUBJECT assertion.issuer.value = cls.ISSUER_DN response.assertions.append(assertion) return response
def _createAttributeQueryResponse(self): response = Response() response.issueInstant = datetime.utcnow() # Make up a request ID that this response is responding to response.inResponseTo = str(uuid4()) response.id = str(uuid4()) response.version = SAMLVersion(SAMLVersion.VERSION_20) response.issuer = Issuer() response.issuer.format = Issuer.X509_SUBJECT response.issuer.value = \ SAMLTestCase.ISSUER_DN response.status = Status() response.status.statusCode = StatusCode() response.status.statusCode.value = StatusCode.SUCCESS_URI response.status.statusMessage = StatusMessage() response.status.statusMessage.value = "Response created successfully" assertion = self._createAttributeAssertionHelper() # Add a conditions statement for a validity of 8 hours assertion.conditions = Conditions() assertion.conditions.notBefore = datetime.utcnow() assertion.conditions.notOnOrAfter = (assertion.conditions.notBefore + timedelta(seconds=60*60*8)) assertion.subject = Subject() assertion.subject.nameID = NameID() assertion.subject.nameID.format = SAMLTestCase.NAMEID_FORMAT assertion.subject.nameID.value = SAMLTestCase.NAMEID_VALUE assertion.issuer = Issuer() assertion.issuer.format = Issuer.X509_SUBJECT assertion.issuer.value = SAMLTestCase.ISSUER_DN response.assertions.append(assertion) return response