Skip to content
Snippets Groups Projects
Unverified Commit bfc19760 authored by Georg Krause's avatar Georg Krause
Browse files

Make correct use of class methods

parent 8d962826
No related branches found
No related tags found
No related merge requests found
Pipeline #20030 failed
...@@ -112,7 +112,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase): ...@@ -112,7 +112,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase):
@classmethod @classmethod
def get_string_to_sign( def get_string_to_sign(
self, request, headers, created_timestamp, expires_timestamp cls, request, headers, created_timestamp, expires_timestamp
): ):
sts = [] sts = []
for header in headers: for header in headers:
...@@ -180,7 +180,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase): ...@@ -180,7 +180,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase):
return request return request
@classmethod @classmethod
def get_sig_struct(self, request, scheme="Authorization"): def get_sig_struct(cls, request, scheme="Authorization"):
sig_struct = request.headers[scheme] sig_struct = request.headers[scheme]
if scheme == "Authorization": if scheme == "Authorization":
sig_struct = sig_struct.split(" ", 1)[1] sig_struct = sig_struct.split(" ", 1)[1]
...@@ -190,7 +190,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase): ...@@ -190,7 +190,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase):
} }
@classmethod @classmethod
def verify(self, request, key_resolver, scheme="Authorization"): def verify(cls, request, key_resolver, scheme="Authorization"):
if scheme == "Authorization": if scheme == "Authorization":
assert "Authorization" in request.headers, "No Authorization header found" assert "Authorization" in request.headers, "No Authorization header found"
msg = ( msg = (
...@@ -204,13 +204,13 @@ class HTTPSignatureAuth(requests.auth.AuthBase): ...@@ -204,13 +204,13 @@ class HTTPSignatureAuth(requests.auth.AuthBase):
'Unknown signature scheme "{}"'.format(scheme) 'Unknown signature scheme "{}"'.format(scheme)
) )
sig_struct = self.get_sig_struct(request, scheme=scheme) sig_struct = cls.get_sig_struct(request, scheme=scheme)
for field in "keyId", "algorithm", "signature": for field in "keyId", "algorithm", "signature":
assert ( assert (
field in sig_struct field in sig_struct
), 'Required signature parameter "{}" not found'.format(field) ), 'Required signature parameter "{}" not found'.format(field)
assert ( assert (
sig_struct["algorithm"] in self.known_algorithms sig_struct["algorithm"] in cls.known_algorithms
), "Unknown signature algorithm" ), "Unknown signature algorithm"
created_timestamp = ( created_timestamp = (
int(sig_struct["created"]) if "created" in sig_struct else None int(sig_struct["created"]) if "created" in sig_struct else None
...@@ -220,7 +220,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase): ...@@ -220,7 +220,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase):
expires_timestamp = int(expires_timestamp) expires_timestamp = int(expires_timestamp)
headers = sig_struct.get("headers", "date").split(" ") headers = sig_struct.get("headers", "date").split(" ")
sig = base64.b64decode(sig_struct["signature"]) sig = base64.b64decode(sig_struct["signature"])
sts = self.get_string_to_sign( sts = cls.get_string_to_sign(
request, headers, created_timestamp, expires_timestamp=expires_timestamp request, headers, created_timestamp, expires_timestamp=expires_timestamp
) )
key = key_resolver( key = key_resolver(
...@@ -241,5 +241,6 @@ class HTTPSignatureHeaderAuth(HTTPSignatureAuth): ...@@ -241,5 +241,6 @@ class HTTPSignatureHeaderAuth(HTTPSignatureAuth):
request.headers["Signature"] = self.create_signature_string(request) request.headers["Signature"] = self.create_signature_string(request)
return request return request
def verify(self, request, key_resolver): @classmethod
def verify(cls, request, key_resolver):
return super().verify(request, key_resolver, scheme="Signature") return super().verify(request, key_resolver, scheme="Signature")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment