Revize 5e31b492
Přidáno uživatelem David Friesecký před téměř 4 roky(ů)
src/controllers/crl_ocsp_controller.py | ||
---|---|---|
1 |
from flask import Response |
|
1 |
from flask import Response, request
|
|
2 | 2 |
from injector import inject |
3 | 3 |
import base64 |
4 | 4 |
|
... | ... | |
6 | 6 |
from src.exceptions.private_key_not_found_exception import PrivateKeyNotFoundException |
7 | 7 |
from src.services.crl_ocsp.crl_ocsp_service import CrlOcspService |
8 | 8 |
from src.controllers.return_codes import * |
9 |
from src.utils.logger import Logger |
|
9 | 10 |
|
10 | 11 |
E_WRONG_PARAMETERS = {"success": False, "data": "Invalid request, wrong parameters."} |
11 | 12 |
E_NO_CERTIFICATES_FOUND = {"success": False, "data": "No such certificate found."} |
... | ... | |
23 | 24 |
:param ca_id: certificate authority whose CRL is requested |
24 | 25 |
:return: download response / error |
25 | 26 |
""" |
27 |
|
|
28 |
# TODO check log |
|
29 |
Logger.info(f"\n\t{request.referrer}" |
|
30 |
f"\n\t{request.method} {request.path} {request.scheme}" |
|
31 |
f"\n\tCertificate ID = {ca_id}") |
|
32 |
|
|
26 | 33 |
# convert id from string to int |
27 | 34 |
try: |
28 | 35 |
identifier = int(ca_id) |
29 | 36 |
except ValueError: |
37 |
Logger.error(f"Invalid request, wrong parameters 'id'[{ca_id}].") |
|
30 | 38 |
return E_WRONG_PARAMETERS, C_BAD_REQUEST |
31 | 39 |
|
32 | 40 |
# generate the CRL |
33 | 41 |
try: |
34 | 42 |
crl = self.crl_service.generate_crl_response(identifier) |
35 | 43 |
except CertificateNotFoundException: |
44 |
Logger.error(f"No such certificate found 'ID = {identifier}'.") |
|
36 | 45 |
return E_NO_CERTIFICATES_FOUND, C_NOT_FOUND |
37 | 46 |
|
38 | 47 |
return Response(crl, mimetype="application/x-x509-ca-cert", |
... | ... | |
45 | 54 |
:param base64_der_ocsp_request: encoded request |
46 | 55 |
:return: DER OCSP response |
47 | 56 |
""" |
57 |
|
|
58 |
Logger.info(f"\n\t{request.referrer}" |
|
59 |
f"\n\t{request.method} {request.path} {request.scheme}" |
|
60 |
f"\n\tCertificate ID = {ca_id}") |
|
61 |
|
|
48 | 62 |
return self.get_ocsp_from_der(ca_id, base64.b64decode(base64_der_ocsp_request)) |
49 | 63 |
|
50 | 64 |
def get_ocsp_from_der(self, ca_id, der_ocsp_request): |
... | ... | |
54 | 68 |
:param der_ocsp_request: encoded request |
55 | 69 |
:return: DER OCSP response |
56 | 70 |
""" |
71 |
|
|
72 |
Logger.info(f"\n\t{request.referrer}" |
|
73 |
f"\n\t{request.method} {request.path} {request.scheme}" |
|
74 |
f"\n\tCertificate ID = {ca_id}") |
|
75 |
|
|
57 | 76 |
if len(der_ocsp_request) == 0: |
77 |
Logger.error(f"Invalid request, wrong parameters 'der_ocsp_request'.") |
|
58 | 78 |
return E_WRONG_PARAMETERS, C_BAD_REQUEST |
59 | 79 |
|
60 | 80 |
try: |
61 | 81 |
ca_id = int(ca_id) |
62 | 82 |
except ValueError: |
83 |
Logger.error(f"Invalid request, wrong parameters 'id'[{ca_id}].") |
|
63 | 84 |
return E_WRONG_PARAMETERS, C_BAD_REQUEST |
64 | 85 |
|
65 | 86 |
try: |
66 | 87 |
ocsp_response = self.crl_service.generate_ocsp_response(ca_id, der_ocsp_request) |
67 | 88 |
except CertificateNotFoundException: |
89 |
Logger.error(f"No such certificate found 'ID = {ca_id}'.") |
|
68 | 90 |
return E_NO_CERTIFICATES_FOUND, C_NOT_FOUND |
69 | 91 |
|
70 | 92 |
return Response(ocsp_response, mimetype="application/ocsp-response") |
Také k dispozici: Unified diff
Re #8570 - Messages logging