コード例 #1
0
 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
コード例 #2
0
    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
コード例 #3
0
    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))
コード例 #4
0
    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)