Commit a2ac3ccf authored by Pelayo Torres's avatar Pelayo Torres
Browse files

ca root caught in main and getauth GET method without body

parent 794e34fa
Loading
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -48,11 +48,23 @@ data = {
response = requests.request("POST", url, headers=headers, data=data, verify = False)
superadmin_cert = json.loads(response.text)['data']['certificate']

# Svae the superadmin certificate
# Save the superadmin certificate
cert_file = open("register_service/certs/superadmin.crt", 'wb')
cert_file.write(bytes(superadmin_cert, 'utf-8'))
cert_file.close()

url = f"http://{config['ca_factory']['url']}:{config['ca_factory']['port']}/v1/secret/data/ca"
headers = {

        'X-Vault-Token': config['ca_factory']['token']
}
response = requests.request("GET", url, headers=headers, verify = False)

ca_root = json.loads(response.text)['data']['data']['ca']
cert_file = open("register_service/certs/ca_root.crt", 'wb')
cert_file.write(bytes(ca_root, 'utf-8'))
cert_file.close()

# Request CAPIF private key to encode the token
url = 'http://{}:{}/v1/secret/data/server_cert/private'.format(config["ca_factory"]["url"], config["ca_factory"]["port"])
headers = {'X-Vault-Token': f"{config["ca_factory"]["token"]}"}
+4 −5
Original line number Diff line number Diff line
@@ -43,13 +43,12 @@ def register():

    return register_operation.register_user(username, password, description, email)

@register_routes.route("/getauth", methods=["POST"])
@register_routes.route("/getauth", methods=["GET"])
@auth.login_required
def getauth():
    username = request.json["username"]
    password = request.json["password"]
    username, role = auth.current_user()
    
    return register_operation.get_auth(username, password)
    return register_operation.get_auth(username)

@register_routes.route("/deleteUser", methods=["DELETE"])
@auth.login_required
+10 −15
Original line number Diff line number Diff line
from flask import current_app, Flask, jsonify, request, Response
from flask import Flask, jsonify, request, Response
from flask_jwt_extended import create_access_token
from ..db.db import MongoDatabse
from datetime import datetime
from ..config import Config
import secrets
import requests
import json
import sys
import base64
import uuid

class RegisterOperations:
@@ -31,28 +28,26 @@ class RegisterOperations:

        return jsonify(message="invoker registered successfully", uuid=user_uuid), 201

    def get_auth(self, username, password):
    def get_auth(self, username):

        mycol = self.db.get_col_by_name(self.db.capif_users)

        try:

            exist_user = mycol.find_one({"username": username, "password": password})
            exist_user = mycol.find_one({"username": username})

            if exist_user is None:
                return jsonify("Not exister user with this credentials"), 400

            access_token = create_access_token(identity=(username + " " + exist_user["uuid"]))
            url = f"http://{self.config['ca_factory']['url']}:{self.config['ca_factory']['port']}/v1/secret/data/ca"
            headers = {
            
                    'X-Vault-Token': self.config['ca_factory']['token']
            }
            response = requests.request("GET", url, headers=headers, verify = False)
            response_payload = json.loads(response.text)
            cert_file = open("register_service/certs/ca_root.crt", 'rb')
            ca_root = cert_file.read()
            cert_file.close()

            return jsonify(message="Token and CA root returned successfully", 
                            access_token=access_token, 
                           ca_root=response_payload['data']['data']['ca'],
                            ca_root=ca_root.decode("utf-8"),
                            ccf_api_onboarding_url="api-provider-management/v1/registrations",
                            ccf_publish_url="published-apis/v1/<apfId>/service-apis",
                            ccf_onboarding_url="api-invoker-management/v1/onboardedInvokers",