Пример #1
0
# 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'),
    )
Пример #2
0
# 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):
Пример #3
0
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,
Пример #4
0
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)