Commit a03b10e8 authored by Jorge Moratinos's avatar Jorge Moratinos
Browse files

Merge branch 'staging' into OCF184-add-visibility-control-api-helper

parents 87d4589b ac7be123
Loading
Loading
Loading
Loading
Loading
+5 −4
Original line number Original line Diff line number Diff line
connexion[flask, swagger-ui, uvicorn] == 3.1.0; python_version>="3.6"
connexion[flask, swagger-ui, uvicorn] == 3.1.0; python_version>="3.6"
swagger-ui-bundle >= 0.0.2
swagger-ui-bundle >= 0.0.2
python_dateutil >= 2.6.0
python_dateutil >= 2.6.0
setuptools == 80.9.0
urllib3 >= 2.6.0
setuptools == 74.0.0
Flask == 3.0.3
Flask == 3.0.3
pymongo == 4.7.3
pymongo == 4.7.3
redis ==  4.5.4
redis ==  4.5.4
flask_jwt_extended == 4.6.0
flask_jwt_extended == 4.6.0
cryptography == 46.0.1
cryptography == 43.0.1
rfc3987 == 1.3.8
rfc3987 == 1.3.8
opentelemetry-instrumentation == 0.41b0
opentelemetry-instrumentation == 0.41b0
opentelemetry-instrumentation-flask == 0.41b0
opentelemetry-instrumentation-flask == 0.41b0
opentelemetry-instrumentation-redis == 0.41b0
opentelemetry-instrumentation-redis == 0.41b0
opentelemetry-instrumentation-pymongo == 0.41b0
opentelemetry-instrumentation-pymongo == 0.41b0
opentelemetry-exporter-otlp == 1.20.0
opentelemetry-exporter-otlp == 1.20.0
opentelemetry-exporter-jaeger == 1.21.0
opentelemetry-exporter-jaeger == 1.20.0
fluent == 0.10.0
fluent == 0.10.0
fluent-logger == 0.10.0
fluent-logger == 0.10.0
opentelemetry-api == 1.20.0
opentelemetry-api == 1.20.0
opentelemetry-sdk == 1.20.0
opentelemetry-sdk == 1.20.0
flask_executor == 1.0.0
flask_executor == 1.0.0
Flask-APScheduler == 1.13.1
Flask-APScheduler == 1.13.1
werkzeug == 3.1.3
werkzeug == 3.0.6
gunicorn == 23.0.0
gunicorn == 23.0.0
packaging == 24.0
packaging == 24.0
 No newline at end of file
+33 −9
Original line number Original line Diff line number Diff line

from functools import wraps
from api_provider_management.models.api_provider_enrolment_details import \
    APIProviderEnrolmentDetails  # noqa: E501
from api_provider_management.models.api_provider_enrolment_details_patch import \
    APIProviderEnrolmentDetailsPatch  # noqa: E501
from api_provider_management.models.problem_details import \
    ProblemDetails  # noqa: E501
from flask import current_app, request
from flask import current_app, request
from cryptography import x509
from cryptography.hazmat.backends import default_backend


from ..core.provider_enrolment_details_api import ProviderManagementOperations
from ..core.provider_enrolment_details_api import ProviderManagementOperations
from ..core.validate_user import ControlAccess
from ..models.api_provider_enrolment_details_patch import \
from ..models.api_provider_enrolment_details_patch import \
        APIProviderEnrolmentDetailsPatch  # noqa: E501
        APIProviderEnrolmentDetailsPatch  # noqa: E501


provider_management_ops = ProviderManagementOperations()
provider_management_ops = ProviderManagementOperations()
valid_user = ControlAccess()

def cert_validation():
    def _cert_validation(f):
        @wraps(f)
        def __cert_validation(*args, **kwargs):

            args = request.view_args
            cert_tmp = request.headers['X-Ssl-Client-Cert']
            cert_raw = cert_tmp.replace('\t', '')

            cert = x509.load_pem_x509_certificate(str.encode(cert_raw), default_backend())

            cn = cert.subject.get_attributes_for_oid(x509.OID_COMMON_NAME)[0].value.strip()

            if cn != "superadmin":
                cert_signature = cert.signature.hex()
                result = valid_user.validate_user_cert(args["registrationId"], cert_signature)

                if result is not None:
                    return result

            result = f(**kwargs)
            return result
        return __cert_validation
    return _cert_validation


@cert_validation()
def modify_ind_api_provider_enrolment(registration_id, body):  # noqa: E501
def modify_ind_api_provider_enrolment(registration_id, body):  # noqa: E501
    """modify_ind_api_provider_enrolment
    """modify_ind_api_provider_enrolment


@@ -29,6 +53,6 @@ def modify_ind_api_provider_enrolment(registration_id, body): # noqa: E501
    if request.is_json:
    if request.is_json:
        body = APIProviderEnrolmentDetailsPatch.from_dict(request.get_json())  # noqa: E501
        body = APIProviderEnrolmentDetailsPatch.from_dict(request.get_json())  # noqa: E501


    res = provider_management_ops.update_api_provider_enrolment_details(registration_id, body)
    res = provider_management_ops.patch_api_provider_enrolment_details(registration_id, body)


    return res
    return res
+0 −1
Original line number Original line Diff line number Diff line
@@ -120,7 +120,6 @@ for name, pkg in package_paths.items():
        openapi_file,             # relative to specification_dir (SERVICES_DIR)
        openapi_file,             # relative to specification_dir (SERVICES_DIR)
        arguments={"title": title},
        arguments={"title": title},
        pythonic_params=True,
        pythonic_params=True,
        # base_path=base_path
        base_path="/helper/" + base_path
        base_path="/helper/" + base_path
    )
    )


+1 −1
Original line number Original line Diff line number Diff line
map "$endpoint:$method:$role" $helper_mtls_policy {
map "$endpoint:$method:$role" $helper_mtls_policy {
    default "DENY";
    default "DENY";
    ~^helper_base_tree:.*:superadmin$ ALLOW;
    ~^helper_base_tree:.*:superadmin$ ALLOW;
    ~^helper_base_tree:.*:amf$        ALLOW; #
    ~^helper_base_tree:.*:amf$        ALLOW;
}
}