Loading services/register/register_service/__main__.py +13 −1 Original line number Diff line number Diff line Loading @@ -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"]}"} Loading services/register/register_service/controllers/register_controller.py +4 −5 Original line number Diff line number Diff line Loading @@ -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 Loading services/register/register_service/core/register_operations.py +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: Loading @@ -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", Loading Loading
services/register/register_service/__main__.py +13 −1 Original line number Diff line number Diff line Loading @@ -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"]}"} Loading
services/register/register_service/controllers/register_controller.py +4 −5 Original line number Diff line number Diff line Loading @@ -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 Loading
services/register/register_service/core/register_operations.py +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: Loading @@ -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", Loading