# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE # AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. from datetime import timedelta from django.contrib.auth.models import AbstractUser from django.db import models from django.utils import timezone from oauth2_provider.models import AbstractApplication from consent_manager.settings import REQUEST_VALIDITY_SECONDS, DEFAULT_SCOPES from hgw_common.utils import generate_id, get_logger logger = get_logger('consent_manager') class Consent(models.Model): PENDING = 'PE' ACTIVE = 'AC' REVOKED = 'RE' NOT_VALID = 'NV' STATUS_CHOICES = ( (REVOKED, 'REVOKED'), # Status set to a Consent that was never confirmed (PENDING, 'PENDING'), (ACTIVE, 'ACTIVE'), (NOT_VALID, 'NOT_VALID'), )
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE # AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. import copy from datetime import datetime from django.db import models from django.utils.crypto import get_random_string from oauthlib.oauth2 import BackendApplicationClient, InvalidClientError, MissingTokenError, TokenExpiredError from requests_oauthlib import OAuth2Session from hgw_common.fields import JSONValidator from hgw_common.utils import get_logger logger = get_logger('hgw_common') def generate_id(): return get_random_string(32) class Profile(models.Model): code = models.CharField(max_length=10, blank=False, null=False) version = models.CharField(max_length=30, blank=False, null=False) payload = models.CharField(max_length=1000, blank=False, null=False, validators=[JSONValidator]) def __str__(self):
from datetime import datetime from django.conf import settings from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation from django.contrib.contenttypes.models import ContentType from django.db import models from django.utils.crypto import get_random_string from oauth2_provider.models import AbstractApplication from oauthlib.oauth2 import BackendApplicationClient, TokenExpiredError, InvalidClientError, MissingTokenError from requests.auth import HTTPBasicAuth from requests.exceptions import ConnectionError from requests_oauthlib import OAuth2Session from hgw_backend.fields import HostnameURLField from hgw_common.utils import get_logger logger = get_logger('hgw_backend') def get_source_id(): return get_random_string(32) class Source(models.Model): """ Model that represent a Source. A Source is registered with an unique id, a name, a url, which is the rest endpoint to use to open a Connector in the Source, a Profile and a triple that identifies the authentication method to use with that Source. Available authentication methods are Certificates authentication and oAuth2 authentication. """ source_id = models.CharField(max_length=32, blank=False, null=False,
import os import time import uuid import requests from Cryptodome.PublicKey import RSA from django.core.management.base import BaseCommand from destination_mockup import settings from hgw_common.cipher import Cipher from hgw_common.utils import get_logger MAGIC_BYTES = '\xdf\xbb' logger = get_logger('rest_consumer') class Command(BaseCommand): PRI_RSA_KEY_PATH = os.path.join(settings.BASE_DIR, 'certs/kafka/payload_encryption/private_key.pem') help = 'Launch the kafka consumer ' def __init__(self): with open(self.PRI_RSA_KEY_PATH, 'r') as f: self.rsa_pri_key = RSA.importKey(f.read()) self.cipher = Cipher(private_key=self.rsa_pri_key) super(Command, self).__init__() def _handle_payload(self, data, *args, **options): docs = json.loads(data)