security.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import os
  2. from .base import BASE_DIR
  3. from corsheaders.defaults import default_headers
  4. from django.core.management.utils import get_random_secret_key
  5. from pathlib import Path
  6. SECRET_KEY_FILE = Path(os.environ.get("PYCS_SECRET_KEYFILE", BASE_DIR / 'secret.txt'))
  7. if not SECRET_KEY_FILE.exists():
  8. with open(SECRET_KEY_FILE, "w") as f:
  9. f.write(get_random_secret_key())
  10. os.chmod(SECRET_KEY_FILE, 0o600)
  11. SECRET_KEY = open(SECRET_KEY_FILE).read()
  12. # Quick-start development settings - unsuitable for production
  13. # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
  14. ALLOWED_HOSTS = [
  15. # "https://ammod.inf-cv.uni-jena.de",
  16. # "https://deimos.inf-cv.uni-jena.de",
  17. # "http://localhost:5000",
  18. # "http://localhost:8080",
  19. # "localhost",
  20. ]
  21. CORS_ORIGIN_WHITELIST = (
  22. 'http://localhost:8080',
  23. 'http://127.0.0.1:8080',
  24. )
  25. CORS_ALLOW_HEADERS = list(default_headers) + [
  26. 'contenttype',
  27. ]
  28. # Password validation
  29. # https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
  30. AUTH_PASSWORD_VALIDATORS = [
  31. {
  32. 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
  33. },
  34. {
  35. 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
  36. },
  37. {
  38. 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
  39. },
  40. {
  41. 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
  42. },
  43. ]
  44. REST_FRAMEWORK = {
  45. 'DEFAULT_AUTHENTICATION_CLASSES': (
  46. 'rest_framework_simplejwt.authentication.JWTAuthentication',
  47. )
  48. }