Beispiel #1
0
    def request_hook(self, method, path, data, params, **kwargs):
        """
        Used by Jira Client to apply the jira-cloud authentication
        """
        # handle params that are already part of the path
        url_params = dict(parse_qs(urlsplit(path).query))
        url_params.update(params or {})
        path = path.split('?')[0]

        jwt_payload = {
            'iss': JIRA_KEY,
            'iat': datetime.datetime.utcnow(),
            'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=5 * 60),
            'qsh': get_query_hash(path, method.upper(), url_params),
        }
        encoded_jwt = jwt.encode(jwt_payload, self.shared_secret)
        params = dict(
            jwt=encoded_jwt,
            **(url_params or {})
        )
        request_spec = kwargs.copy()
        request_spec.update(dict(
            method=method,
            path=path,
            data=data,
            params=params))
        return request_spec
Beispiel #2
0
    def request_hook(self, method, path, data, params, **kwargs):
        """
        Used by Jira Client to apply the jira-cloud authentication
        """
        # handle params that are already part of the path
        url_params = dict(parse_qs(urlsplit(path).query))
        url_params.update(params or {})
        path = path.split('?')[0]

        jwt_payload = {
            'iss': JIRA_KEY,
            'iat': datetime.datetime.utcnow(),
            'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=5 * 60),
            'qsh': get_query_hash(path, method.upper(), url_params),
        }
        encoded_jwt = jwt.encode(jwt_payload, self.shared_secret)
        params = dict(
            jwt=encoded_jwt,
            **(url_params or {})
        )
        request_spec = kwargs.copy()
        request_spec.update(dict(
            method=method,
            path=path,
            data=data,
            params=params))
        return request_spec
Beispiel #3
0
 def request(self, method, path, data=None, params=None, **kwargs):
     jwt_payload = {
         "iss": BITBUCKET_KEY,
         "iat": datetime.datetime.utcnow(),
         "exp": datetime.datetime.utcnow() + datetime.timedelta(seconds=5 * 60),
         "qsh": get_query_hash(path, method.upper(), params),
         "sub": self.subject,
     }
     encoded_jwt = jwt.encode(jwt_payload, self.shared_secret)
     headers = {"Authorization": b"JWT %s" % encoded_jwt}
     return self._request(method, path, data=data, params=params, headers=headers, **kwargs)
Beispiel #4
0
 def request(self, method, path, data=None, params=None, **kwargs):
     jwt_payload = {
         'iss': JIRA_KEY,
         'iat': datetime.datetime.utcnow(),
         'exp':
         datetime.datetime.utcnow() + datetime.timedelta(seconds=5 * 60),
         'qsh': get_query_hash(path, method.upper(), params),
     }
     encoded_jwt = jwt.encode(jwt_payload, self.shared_secret)
     params = dict(jwt=encoded_jwt, **(params or {}))
     return self._request(method, path, data=data, params=params, **kwargs)
Beispiel #5
0
 def jwt_token_cdn(self):
     jira_signing_algorithm = "RS256"
     return jwt.encode(
         {
             "iss": self.external_id,
             "aud": absolute_uri(),
             "qsh": get_query_hash(self.path, method="POST", query_params={}),
         },
         RS256_KEY,
         algorithm=jira_signing_algorithm,
         headers={"kid": self.kid, "alg": jira_signing_algorithm},
     )
Beispiel #6
0
 def jwt_token_secret(self):
     jira_signing_algorithm = "HS256"
     return jwt.encode(
         {
             "iss": self.external_id,
             "aud": absolute_uri(),
             "qsh": get_query_hash(self.path, method="POST", query_params={}),
         },
         self.shared_secret,
         algorithm=jira_signing_algorithm,
         headers={"alg": jira_signing_algorithm},
     )
Beispiel #7
0
 def request(self, method, path, data=None, params=None, **kwargs):
     jwt_payload = {
         'iss': BITBUCKET_KEY,
         'iat': datetime.datetime.utcnow(),
         'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=5 * 60),
         'qsh': get_query_hash(path, method.upper(), params),
         'sub': self.subject,
     }
     encoded_jwt = jwt.encode(jwt_payload, self.shared_secret)
     headers = {
         'Authorization': 'JWT %s' % encoded_jwt
     }
     return self._request(method, path, data=data, params=params, headers=headers, **kwargs)
Beispiel #8
0
 def request(self, method, path, data=None, params=None, **kwargs):
     jwt_payload = {
         'iss': BITBUCKET_KEY,
         'iat': datetime.datetime.utcnow(),
         'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=5 * 60),
         'qsh': get_query_hash(path, method.upper(), params),
         'sub': self.subject,
     }
     encoded_jwt = jwt.encode(jwt_payload, self.shared_secret)
     headers = {
         'Authorization': 'JWT %s' % encoded_jwt
     }
     return self._request(method, path, data=data, params=params, headers=headers, **kwargs)
    def request(self, method, path, data=None, params=None, **kwargs):
        # handle params that are already part of the path
        url_params = dict(parse_qs(urlsplit(path).query))
        url_params.update(params or {})
        path = path.split('?')[0]

        jwt_payload = {
            'iss': JIRA_KEY,
            'iat': datetime.datetime.utcnow(),
            'exp':
            datetime.datetime.utcnow() + datetime.timedelta(seconds=5 * 60),
            'qsh': get_query_hash(path, method.upper(), url_params),
        }
        encoded_jwt = jwt.encode(jwt_payload, self.shared_secret)
        params = dict(jwt=encoded_jwt, **(url_params or {}))
        return self._request(method, path, data=data, params=params, **kwargs)
Beispiel #10
0
    def request(self, method, path, data=None, params=None, **kwargs):
        # handle params that are already part of the path
        url_params = dict(parse_qs(urlsplit(path).query))
        url_params.update(params or {})
        path = path.split('?')[0]

        jwt_payload = {
            'iss': JIRA_KEY,
            'iat': datetime.datetime.utcnow(),
            'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=5 * 60),
            'qsh': get_query_hash(path, method.upper(), url_params),
        }
        encoded_jwt = jwt.encode(jwt_payload, self.shared_secret)
        params = dict(
            jwt=encoded_jwt,
            **(url_params or {})
        )
        return self._request(method, path, data=data, params=params, **kwargs)