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 Original line Diff line number Diff line
@@ -48,11 +48,23 @@ data = {
response = requests.request("POST", url, headers=headers, data=data, verify = False)
response = requests.request("POST", url, headers=headers, data=data, verify = False)
superadmin_cert = json.loads(response.text)['data']['certificate']
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 = open("register_service/certs/superadmin.crt", 'wb')
cert_file.write(bytes(superadmin_cert, 'utf-8'))
cert_file.write(bytes(superadmin_cert, 'utf-8'))
cert_file.close()
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
# 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"])
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"]}"}
headers = {'X-Vault-Token': f"{config["ca_factory"]["token"]}"}
+4 −5
Original line number Original line Diff line number Diff line
@@ -43,13 +43,12 @@ def register():


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


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


@register_routes.route("/deleteUser", methods=["DELETE"])
@register_routes.route("/deleteUser", methods=["DELETE"])
@auth.login_required
@auth.login_required
+10 −15
Original line number Original line 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 flask_jwt_extended import create_access_token
from ..db.db import MongoDatabse
from ..db.db import MongoDatabse
from datetime import datetime
from datetime import datetime
from ..config import Config
from ..config import Config
import secrets
import base64
import requests
import json
import sys
import uuid
import uuid


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


        return jsonify(message="invoker registered successfully", uuid=user_uuid), 201
        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)
        mycol = self.db.get_col_by_name(self.db.capif_users)


        try:
        try:


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


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


            access_token = create_access_token(identity=(username + " " + exist_user["uuid"]))
            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']
            cert_file = open("register_service/certs/ca_root.crt", 'rb')
            }
            ca_root = cert_file.read()
            response = requests.request("GET", url, headers=headers, verify = False)
            cert_file.close()
            response_payload = json.loads(response.text)

            return jsonify(message="Token and CA root returned successfully", 
            return jsonify(message="Token and CA root returned successfully", 
                            access_token=access_token, 
                            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_api_onboarding_url="api-provider-management/v1/registrations",
                            ccf_publish_url="published-apis/v1/<apfId>/service-apis",
                            ccf_publish_url="published-apis/v1/<apfId>/service-apis",
                            ccf_onboarding_url="api-invoker-management/v1/onboardedInvokers",
                            ccf_onboarding_url="api-invoker-management/v1/onboardedInvokers",