Replace requests-http-signature with requests-http-message-signatures

environments/review-front-reno-ze4s4p/deployments/11341
Georg Krause 2022-04-01 15:00:54 +02:00
rodzic ffd1ae0c44
commit 09b1e7a007
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 2970D504B2183D22
3 zmienionych plików z 8 dodań i 12 usunięć

Wyświetl plik

@ -2,7 +2,7 @@ import uuid
import factory
import requests
import requests_http_signature
import requests_http_message_signatures
from django.conf import settings
from django.utils import timezone
from django.utils.http import http_date
@ -20,11 +20,10 @@ class SignatureAuthFactory(factory.Factory):
algorithm = "rsa-sha256"
key = factory.LazyFunction(lambda: keys.get_key_pair()[0])
key_id = factory.Faker("url")
use_auth_header = False
headers = ["(request-target)", "user-agent", "host", "date", "accept"]
class Meta:
model = requests_http_signature.HTTPSignatureAuth
model = requests_http_message_signatures.HTTPSignatureHeaderAuth
@registry.register(name="federation.SignedRequest")

Wyświetl plik

@ -8,7 +8,7 @@ from django.utils import timezone
from django.utils.http import parse_http_date
import requests
import requests_http_signature
import requests_http_message_signatures
from . import exceptions, utils
@ -45,8 +45,8 @@ def verify(request, public_key):
)
verify_date(date)
try:
return requests_http_signature.HTTPSignatureAuth.verify(
request, key_resolver=lambda **kwargs: public_key, use_auth_header=False
return requests_http_message_signatures.HTTPSignatureHeaderAuth.verify(
request, key_resolver=lambda **kwargs: public_key
)
except cryptography.exceptions.InvalidSignature:
logger.warning(
@ -65,7 +65,7 @@ def verify_django(django_request, public_key):
headers = utils.clean_wsgi_headers(django_request.META)
for h, v in list(headers.items()):
# we include lower-cased version of the headers for compatibility
# with requests_http_signature
# with requests_http_message_signatures
headers[h.lower()] = v
try:
signature = headers["Signature"]
@ -98,8 +98,7 @@ def verify_django(django_request, public_key):
def get_auth(private_key, private_key_id):
return requests_http_signature.HTTPSignatureAuth(
use_auth_header=False,
return requests_http_message_signatures.HTTPSignatureHeaderAuth(
headers=["(request-target)", "user-agent", "host", "date"],
algorithm="rsa-sha256",
key=private_key.encode("utf-8"),

Wyświetl plik

@ -41,9 +41,7 @@ uvicorn[standard]~=0.14.0
gunicorn~=20.1.0
cryptography>=3.3.2
# requests-http-signature==0.0.3
# clone until the branch is merged and released upstream
git+https://github.com/agateblue/requests-http-signature.git@signature-header-support
requests-http-message-signature==0.3.1
django-cleanup~=5.2.0
requests~=2.26.0
pyOpenSSL~=20.0.1