def __set_headers(self, m_request): """ For testing purpose, this method setups the mocked request. """ m_request.META = {} m_request.META[EZSECURITY_HEADER_USER_INFO] = serialize_to_json( ProxyUserToken(notAfter=current_time_millis() + 10000)) m_request.META[EZSECURITY_HEADER_SIGNATURE] = \ "EZSECURITY_HEADER_SIGNATURE" return m_request
def process_request(self, request): """ Injects the ProxyUserPrincipal and its signature into the headers. :param request: instance of Django's HttpRequest :return: returns the request object with the injected ProxyUserToken, and signature. """ if not has_proxy_user_token(request): token = self.make_token() dn = serialize_to_json(token) signature = self.ez_security_client._mock_service_sign(dn) if EZSECURITY_HEADER_USER_INFO not in request.META: request.META[EZSECURITY_HEADER_USER_INFO] = dn if EZSECURITY_HEADER_SIGNATURE not in request.META: request.META[EZSECURITY_HEADER_SIGNATURE] = signature return
def test_validate_current_request(self): """ Tests EzSecurityClient.validateCurrentRequest. """ ezclient = self.get_client() x509 = X509Info( subject=ezclient.ez_props.get(MOCK_USER_DN) ) token = ProxyUserToken( x509=x509, issuedBy="EzSecurity", issuedTo="EFE", notAfter=current_time_millis() + 720000 # 720000 = 12 mins ) dn = util.serialize_to_json(token) # sig = util.ssl_sign(dn, self.rsa) sig = ezclient._mock_service_sign(dn) headers = { HTTP_HEADER_USER_INFO: dn, HTTP_HEADER_SIGNATURE: sig } self.assertTrue(ezclient.validate_current_request(headers))
def test__mock_service_sign(self): """ Tests EzSecurityClient._mock_service_sign """ ezclient = self.get_client() # test with mock = True x509 = X509Info( subject=ezclient.ez_props.get(MOCK_USER_DN) ) token = ProxyUserToken( x509=x509, issuedBy="EzSecurity", issuedTo="EFE", notAfter=current_time_millis() + 720000 # 720000 = 12 mins ) dn = util.serialize_to_json(token) sig1 = util.ssl_sign(dn, self.rsa) # manually loaded service priv key sig2 = ezclient._mock_service_sign(dn) self.assertEqual(sig1, sig2) # test with mock = False ezclient.mock = False self.assertRaises(ValueError, ezclient._mock_service_sign, dn)