Commit 3c7bbe23 authored by guillecxb's avatar guillecxb
Browse files

Use ttls from configuratio database and add config database for register

parent ec32f3c5
Loading
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -18,6 +18,9 @@ from .responses import bad_request_error, not_found_error, forbidden_error, inte
from ..config import Config
from ..util import dict_to_camel_case, serialize_clean_camel_case

from api_invoker_management.db.db import MongoDatabse


publisher_ops = Publisher()


@@ -38,11 +41,14 @@ class InvokerManagementOperations(Resource):

    def __sign_cert(self, publick_key, invoker_id):

        capif_config = self.db.get_col_by_name("capifConfiguration").find_one({"config_name": "default"})
        ttl_invoker_cert = capif_config["settings"].get("ttl_invoker_cert", "43000h")

        url = f"http://{self.config['ca_factory']['url']}:{self.config['ca_factory']['port']}/v1/pki_int/sign/my-ca"
        headers = {'X-Vault-Token': self.config['ca_factory']['token']}
        data = {
            'format': 'pem_bundle',
            'ttl': '43000h',
            'ttl': ttl_invoker_cert,
            'csr': publick_key,
            'common_name': invoker_id
        }
@@ -58,6 +64,7 @@ class InvokerManagementOperations(Resource):
        Resource.__init__(self)
        self.auth_manager = AuthManager()
        self.config = Config().get_config()
        self.db = MongoDatabse()

    def add_apiinvokerenrolmentdetail(self, apiinvokerenrolmentdetail, username, uuid):

+7 −1
Original line number Diff line number Diff line
@@ -3,17 +3,23 @@ import json
import requests

from ..config import Config
from ..db.db import MongoDatabse


def sign_certificate(publick_key, provider_id):

    config =  Config().get_config()

    db = MongoDatabse()
    capif_config = db.get_col_by_name("capifConfiguration").find_one({"config_name": "default"})
    ttl_provider_cert = capif_config.get("settings", {}).get("ttl_provider_cert", "4300h")

    url = f"http://{config['ca_factory']['url']}:{config['ca_factory']['port']}/v1/pki_int/sign/my-ca"

    headers = {'X-Vault-Token': config['ca_factory']['token']}
    data = {
        'format':'pem_bundle',
        'ttl': '43000h',
        'ttl': ttl_provider_cert,
        'csr': publick_key,
        'common_name': provider_id
    }
+3 −1
Original line number Diff line number Diff line
@@ -24,7 +24,9 @@ capifConfiguration: {
  version: "1.0",
  description: "Default CAPIF Configuration",
  settings: {
    certify_expiration_period: 30,
    ttl_superadmin_cert: "4300h",
    ttl_invoker_cert: "4300h",
    ttl_provider_cert: "4300h",
    security_method_priority: {
      oauth: 1,
      pki: 2,
+8 −1
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@ import json
import logging
import os

from db.db import MongoDatabse

import requests
from OpenSSL.crypto import PKey, TYPE_RSA, X509Req, dump_certificate_request, FILETYPE_PEM, dump_privatekey
from flask import Flask
@@ -12,6 +14,11 @@ from controllers.helper_controller import helper_routes
app = Flask(__name__)
config = Config().get_config()

# Connect MongoDB and get TTL for superadmin certificate
db = MongoDatabse()
capif_config = db.get_col_by_name("capifConfiguration").find_one({"config_name": "default"})
ttl_superadmin_cert = capif_config["settings"].get("ttl_superadmin_cert", "43000h")

# Setting log level
log_level = os.getenv('LOG_LEVEL', 'INFO').upper()
numeric_level = getattr(logging, log_level, logging.INFO)
@@ -42,7 +49,7 @@ url = 'http://{}:{}/v1/pki_int/sign/my-ca'.format(config["ca_factory"]["url"], c
headers = {'X-Vault-Token': f"{config["ca_factory"]["token"]}"}  
data = {
    'format':'pem_bundle',
    'ttl': '43000h',
    'ttl': ttl_superadmin_cert,
    'csr': csr_request,
    'common_name': "superadmin"
}
+3 −3
Original line number Diff line number Diff line
@@ -117,13 +117,13 @@ def deleteUserEntities(uuid):

@helper_routes.route("/helper/getConfiguration", methods=["GET"])
def getConfiguration():
    """Devuelve toda la configuración actual"""
    """Returns the current configuration"""
    return helper_operation.get_configuration()


@helper_routes.route("/helper/updateConfigParam", methods=["PATCH"])
def updateConfigParam():
    """Actualiza un único parámetro de la configuración"""
    """Updates a single configuration parameter"""
    data = request.json
    param_path = data.get("param_path")  # Ej. "settings.acl_policy_settings.allowedTotalInvocations"
    new_value = data.get("new_value")
@@ -136,7 +136,7 @@ def updateConfigParam():

@helper_routes.route("/helper/replaceConfiguration", methods=["PUT"])
def replaceConfiguration():
    """Reemplaza toda la configuración con una nueva"""
    """Replaces the entire configuration with a new one"""
    new_config = request.json
    if not new_config:
        return jsonify(message="Missing new configuration in request body"), 400
Loading