from django.apps import AppConfig from django.utils.translation import ugettext_lazy as _ from django.conf import settings class ApiConfig(AppConfig): name = 'apps.api' label = 'api' verbose_name = _('API') verbose_name_plural = _('APIs') try: assert settings.SWAGGER_SETTINGS except AttributeError: # We only load this setting, if it is not available in the overall settings.py file settings.SWAGGER_SETTINGS = { 'SECURITY_DEFINITIONS': { 'Hawk': { 'type': 'apiKey', 'description': 'HTTP Holder-Of-Key Authentication Scheme, https://github.com/hapijs/hawk, https://hawkrest.readthedocs.io/en/latest/
Ex header:
\'Authorization\': \'Hawk mac="F4+S9cu7yZiZEgdtqzMpOOdudvqcV2V2Yzk2WcphECc=", hash="+7fKUX+djeQolvnLTxr0X47e//UHKbkRlajwMw3tx3w=", id="7FI5JET4", ts="1592905433", nonce="DlV-fL"\'', 'name': 'Authorization', 'in': 'header' } } } try: assert settings.REST_FRAMEWORK except AttributeError: # We only load this setting, if it is not available in the overall settings.py file # To protect all API views with Hawk by default, put this in your settings: # https://hawkrest.readthedocs.io/en/latest/usage.html#protecting-api-views-with-hawk settings.REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'apps.api.authentication.APIHawk', ), 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', ), # 'DEFAULT_AUTHENTICATION_CLASSES': ( # 'rest_framework.authentication.TokenAuthentication', # ), # 'DEFAULT_PERMISSION_CLASSES': ( # 'rest_framework.permissions.IsAuthenticated', ), # Use Django's standard `django.contrib.auth` permissions, # or allow read-only access for unauthenticated users. #'DEFAULT_PERMISSION_CLASSES': [ # 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' #], 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 10 } try: assert settings.HAWK_MESSAGE_EXPIRATION except AttributeError: # We only load this setting, if it is not available in the overall settings.py file settings.HAWK_MESSAGE_EXPIRATION = 60 def ready(self): from . import signals