2014-04-28 14:33:04 +02:00
|
|
|
import sys
|
|
|
|
|
2016-02-12 17:22:48 +01:00
|
|
|
|
2014-04-28 14:33:04 +02:00
|
|
|
class AppSettings:
|
|
|
|
__PREFIX = 'MELLON_'
|
|
|
|
__DEFAULTS = {
|
2018-03-07 18:08:53 +01:00
|
|
|
'IDENTITY_PROVIDERS': [],
|
2016-02-26 13:28:49 +01:00
|
|
|
'DISCOVERY_SERVICE_URL': None,
|
2016-02-12 17:22:48 +01:00
|
|
|
'PUBLIC_KEYS': (),
|
|
|
|
'PRIVATE_KEY': None,
|
|
|
|
'PRIVATE_KEYS': (),
|
|
|
|
'PRIVATE_KEY_PASSWORD': None,
|
|
|
|
'NAME_ID_FORMATS': (),
|
|
|
|
'NAME_ID_POLICY_FORMAT': None,
|
|
|
|
'NAME_ID_POLICY_ALLOW_CREATE': True,
|
|
|
|
'FORCE_AUTHN': False,
|
2018-03-07 15:57:47 +01:00
|
|
|
'ADD_AUTHNREQUEST_NEXT_URL_EXTENSION': False,
|
2016-02-12 17:22:48 +01:00
|
|
|
'ADAPTER': ('mellon.adapters.DefaultAdapter',),
|
|
|
|
'REALM': 'saml',
|
|
|
|
'PROVISION': True,
|
|
|
|
'USERNAME_TEMPLATE': '{attributes[name_id_content]}@{realm}',
|
|
|
|
'ATTRIBUTE_MAPPING': {},
|
|
|
|
'SUPERUSER_MAPPING': {},
|
|
|
|
'AUTHN_CLASSREF': (),
|
|
|
|
'GROUP_ATTRIBUTE': None,
|
|
|
|
'CREATE_GROUP': True,
|
|
|
|
'ERROR_URL': None,
|
|
|
|
'ERROR_REDIRECT_AFTER_TIMEOUT': 120,
|
2021-08-05 13:34:59 +02:00
|
|
|
'ASSERTION_CONSUMER_BINDINGS': ['post', 'artifact'],
|
2016-02-12 17:22:48 +01:00
|
|
|
'DEFAULT_ASSERTION_CONSUMER_BINDING': 'post', # or artifact
|
|
|
|
'VERIFY_SSL_CERTIFICATE': True,
|
|
|
|
'OPENED_SESSION_COOKIE_NAME': None,
|
2016-02-26 13:15:42 +01:00
|
|
|
'ORGANIZATION': None,
|
|
|
|
'CONTACT_PERSONS': [],
|
2016-04-11 19:20:05 +02:00
|
|
|
'TRANSIENT_FEDERATION_ATTRIBUTE': None,
|
2016-05-10 09:07:02 +02:00
|
|
|
'LOGIN_URL': 'mellon_login',
|
|
|
|
'LOGOUT_URL': 'mellon_logout',
|
2017-08-22 15:30:09 +02:00
|
|
|
'ARTIFACT_RESOLVE_TIMEOUT': 10.0,
|
2019-02-28 09:31:34 +01:00
|
|
|
'LOGIN_HINTS': [],
|
2019-04-04 18:30:02 +02:00
|
|
|
'SIGNATURE_METHOD': 'RSA-SHA256',
|
2019-06-06 13:52:21 +02:00
|
|
|
'LOOKUP_BY_ATTRIBUTES': [],
|
2019-06-07 21:46:07 +02:00
|
|
|
'METADATA_CACHE_TIME': 3600,
|
|
|
|
'METADATA_HTTP_TIMEOUT': 10,
|
2019-10-01 00:20:13 +02:00
|
|
|
'METADATA_PUBLISH_DISCOVERY_RESPONSE': False,
|
2014-04-28 14:33:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@property
|
|
|
|
def IDENTITY_PROVIDERS(self):
|
|
|
|
from django.conf import settings
|
2021-03-02 14:50:18 +01:00
|
|
|
|
2014-04-28 14:33:04 +02:00
|
|
|
try:
|
2018-01-09 21:43:25 +01:00
|
|
|
idps = settings.MELLON_IDENTITY_PROVIDERS
|
2014-04-28 14:33:04 +02:00
|
|
|
except AttributeError:
|
2018-03-07 16:54:19 +01:00
|
|
|
return []
|
2014-04-28 14:33:04 +02:00
|
|
|
if isinstance(idps, dict):
|
|
|
|
idps = [idps]
|
|
|
|
return idps
|
|
|
|
|
|
|
|
def __getattr__(self, name):
|
|
|
|
from django.conf import settings
|
2021-03-02 14:50:18 +01:00
|
|
|
|
2014-04-28 14:33:04 +02:00
|
|
|
if name not in self.__DEFAULTS:
|
|
|
|
raise AttributeError
|
|
|
|
return getattr(settings, self.__PREFIX + name, self.__DEFAULTS[name])
|
|
|
|
|
2021-03-02 14:50:18 +01:00
|
|
|
|
2014-04-28 14:33:04 +02:00
|
|
|
app_settings = AppSettings()
|
|
|
|
app_settings.__name__ = __name__
|
|
|
|
sys.modules[__name__] = app_settings
|