Das ist das Ergebnis.
Und jetzt bekomme ich auch einen debug, wenn ich versuche mich anzumelden…
AuthenticationError at /idm/login
invalid username-password pair or user is disabled.
| Request Method: |
GET |
| Request URL: |
https://portal.xxx.com/idm/login |
| Django Version: |
5.2.8 |
| Exception Type: |
AuthenticationError |
| Exception Value: |
invalid username-password pair or user is disabled. |
| Exception Location: |
/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/_parsers/hiredis.py, line 172, in read_response |
| Raised during: |
idm.views.user_login |
| Python Executable: |
/var/lib/libre-workspace/portal/venv/bin/python3 |
| Python Version: |
3.13.5 |
| Python Path: |
``` |
| [‘/usr/lib/libre-workspace/portal’, |
|
| ‘/var/lib/libre-workspace/portal/venv/bin’, |
|
| ‘/usr/lib/python313.zip’, |
|
| ‘/usr/lib/python3.13’, |
|
| ‘/usr/lib/python3.13/lib-dynload’, |
|
| ‘/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages’] |
|
|Server time:|Fri, 12 Dec 2025 06:37:28 +0100|
## Traceback [Switch to copy-and-paste view](https://portal.bernauer24.com/idm/login#)
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/django/core/handlers/exception.py`, line 55, in inner
55. response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|exc|AuthenticationError('invalid username-password pair or user is disabled.')|
|get_response|<bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f58d2519550>>|
|request|<WSGIRequest: GET '/idm/login'>|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/django/core/handlers/base.py`, line 197, in _get_response
197. response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|callback|<function user_login at 0x7f58d0d74400>|
|callback_args|()|
|callback_kwargs|{}|
|middleware_method|<bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>>|
|request|<WSGIRequest: GET '/idm/login'>|
|response|None|
|self|<django.core.handlers.wsgi.WSGIHandler object at 0x7f58d2519550>|
|wrapped_callback|<function user_login at 0x7f58d0d74400>|
* `/usr/lib/libre-workspace/portal/idm/views.py`, line 97, in user_login
97. _manage_failed_logins_and_bans() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|request|<WSGIRequest: GET '/idm/login'>|
* `/usr/lib/libre-workspace/portal/idm/views.py`, line 69, in _manage_failed_logins_and_bans
69. banned_ips = get_list_from_cache("banned_ips") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…
* `/usr/lib/libre-workspace/portal/lac/utils/cache.py`, line 42, in get_list_from_cache
42. values = redis_client.lrange(key, 0, -1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|key|'banned_ips'|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/commands/core.py`, line 2931, in lrange
2931. return self.execute_command("LRANGE", name, start, end, keys=[name]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|end|-1|
|name|'banned_ips'|
|self|<redis.client.Redis(<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>)>|
|start|0|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/client.py`, line 657, in execute_command
657. return self._execute_command(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|args|('LRANGE', 'banned_ips', 0, -1)|
|options|{'keys': ['banned_ips']}|
|self|<redis.client.Redis(<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>)>|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/client.py`, line 663, in _execute_command
663. conn = self.connection or pool.get_connection() ^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|args|('LRANGE', 'banned_ips', 0, -1)|
|command_name|'LRANGE'|
|options|{'keys': ['banned_ips']}|
|pool|<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>|
|self|<redis.client.Redis(<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>)>|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/utils.py`, line 196, in wrapper
196. return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|allowed_args|[]|
|arg|'*'|
|arg_names|('self', 'command_name')|
|args|(<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>,)|
|args_to_warn|['*']|
|func|<function ConnectionPool.get_connection at 0x7f58d100b6a0>|
|kwargs|{}|
|provided_args|{}|
|reason|'Use get_connection() without args instead'|
|version|'5.3.0'|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 2603, in get_connection
2603. connection.connect() ^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|command_name|None|
|connection|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|
|keys|()|
|options|{}|
|self|<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 846, in connect
846. self.connect_check_health(check_health=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|self|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 869, in connect_check_health
869. self.on_connect_check_health(check_health=check_health) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|check_health|True|
|retry_socket_connect|True|
|self|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|
|sock|<socket.socket [closed] fd=-1, family=2, type=1, proto=6>|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 941, in on_connect_check_health
941. auth_response = self.read_response() ^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|auth_args|('eef6ahviKieceiGeiyoh',)|
|check_health|True|
|cred_provider|<redis.credentials.UsernamePasswordCredentialProvider object at 0x7f58d0069150>|
|parser|<redis._parsers.hiredis._HiredisParser object at 0x7f58d251bb60>|
|self|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 1133, in read_response
1133. response = self._parser.read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|disable_decoding|False|
|disconnect_on_error|True|
|host_error|'127.0.0.1:6379'|
|push_request|False|
|self|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|
* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/_parsers/hiredis.py`, line 172, in read_response
172. raise response ^^^^^^^^^^^^^^
…
Local vars
|Variable|Value|
| --- | --- |
|disable_decoding|False|
|push_request|False|
|response|AuthenticationError('invalid username-password pair or user is disabled.')|
|self|<redis._parsers.hiredis._HiredisParser object at 0x7f58d251bb60>|
## Request information
### USER
AnonymousUser
### GET
No GET data
### POST
No POST data
### FILES
No FILES data
### COOKIES
|Variable|Value|
| --- | --- |
|csrftoken|'********************'|
### META
|Variable|Value|
| --- | --- |
|CSRF_COOKIE|'SuAjrcxm515M4lhVxqW7Vb0ADHL5gRwu'|
|HTTP_ACCEPT|'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'|
|HTTP_ACCEPT_ENCODING|'gzip, deflate, br, zstd'|
|HTTP_ACCEPT_LANGUAGE|'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7'|
|HTTP_COOKIE|'********************'|
|HTTP_HOST|'portal.bernauer24.com'|
|HTTP_PRIORITY|'u=0, i'|
|HTTP_REFERER|'https://portal.bernauer24.com/'|
|HTTP_SEC_CH_UA|'"Chromium";v="143", "Not A(Brand";v="24"'|
|HTTP_SEC_CH_UA_MOBILE|'?0'|
|HTTP_SEC_CH_UA_PLATFORM|'"Linux"'|
|HTTP_SEC_FETCH_DEST|'document'|
|HTTP_SEC_FETCH_MODE|'navigate'|
|HTTP_SEC_FETCH_SITE|'same-origin'|
|HTTP_SEC_FETCH_USER|'?1'|
|HTTP_UPGRADE_INSECURE_REQUESTS|'1'|
|HTTP_USER_AGENT|('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/143.0.0.0 Safari/537.36')|
|HTTP_X_FORWARDED_FOR|'217.82.70.26'|
|HTTP_X_FORWARDED_HOST|'portal.bernauer24.com'|
|HTTP_X_FORWARDED_PROTO|'https'|
|PATH_INFO|'/idm/login'|
|QUERY_STRING|''|
|RAW_URI|'/idm/login'|
|REMOTE_ADDR|'127.0.0.1'|
|REMOTE_PORT|'40822'|
|REQUEST_METHOD|'GET'|
|SCRIPT_NAME|''|
|SERVER_NAME|'127.0.0.1'|
|SERVER_PORT|'11123'|
|SERVER_PROTOCOL|'HTTP/1.1'|
|SERVER_SOFTWARE|'gunicorn/23.0.0'|
|gunicorn.socket|<socket.socket fd=9, family=2, type=1, proto=0, laddr=('127.0.0.1', 11123), raddr=('127.0.0.1', 40822)>|
|wsgi.errors|<gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f58cfe2cdc0>|
|wsgi.file_wrapper|<class 'gunicorn.http.wsgi.FileWrapper'>|
|wsgi.input|<gunicorn.http.body.Body object at 0x7f58cfe767b0>|
|wsgi.input_terminated|True|
|wsgi.multiprocess|True|
|wsgi.multithread|False|
|wsgi.run_once|False|
|wsgi.url_scheme|'https'|
|wsgi.version|(1, 0)|
### Settings
#### Using settings module `lac.settings`
|Setting|Value|
| --- | --- |
|ABSOLUTE_URL_OVERRIDES|{}|
|ADMINS|[]|
|ADMIN_ENABLED|False|
|ALLOWED_HOSTS|['localhost', '127.0.0.1', '192.168.2.204', '172.18.0.1', '172.17.0.1', '172.19.0.1', '[2003:ed:ef1c:6626:5054:ff:fe1e:d162]', '[2003:ed:ef1c:6626:50c7:4f65:9636:8153]', '\n', 'portal.bernauer24.com', 'https://portal.bernauer24.com/idm/user_overview']|
|APPEND_SLASH|True|
|AUTHENTICATION_BACKENDS|'********************'|
|AUTH_LDAP_BIND_DN|'********************'|
|AUTH_LDAP_BIND_PASSWORD|'********************'|
|AUTH_LDAP_DC|'********************'|
|AUTH_LDAP_ENABLED|'********************'|
|AUTH_LDAP_GROUP_ADMIN_DN|'********************'|
|AUTH_LDAP_GROUP_SEARCH|'********************'|
|AUTH_LDAP_GROUP_TYPE|'********************'|
|AUTH_LDAP_SERVER_URI|'********************'|
|AUTH_LDAP_USER_DN_TEMPLATE|'********************'|
|AUTH_LDAP_USER_FLAGS_BY_GROUP|'********************'|
|AUTH_PASSWORD_VALIDATORS|'********************'|
|AUTH_USER_MODEL|'********************'|
|BASE_DIR|PosixPath('/usr/lib/libre-workspace/portal')|
|CACHES|{'default': {'BACKEND': 'django.core.cache.backends.redis.RedisCache', 'KEY_PREFIX': '********************', 'LOCATION': 'redis://:eef6ahviKieceiGeiyoh@127.0.0.1:6379/1'}}|
|CACHE_MIDDLEWARE_ALIAS|'default'|
|CACHE_MIDDLEWARE_KEY_PREFIX|'********************'|
|CACHE_MIDDLEWARE_SECONDS|600|
|CSRF_COOKIE_AGE|31449600|
|CSRF_COOKIE_DOMAIN|None|
|CSRF_COOKIE_HTTPONLY|False|
|CSRF_COOKIE_NAME|'csrftoken'|
|CSRF_COOKIE_PATH|'/'|
|CSRF_COOKIE_SAMESITE|'Lax'|
|CSRF_COOKIE_SECURE|False|
|CSRF_FAILURE_VIEW|'django.views.csrf.csrf_failure'|
|CSRF_HEADER_NAME|'HTTP_X_CSRFTOKEN'|
|CSRF_TRUSTED_ORIGINS|['http://localhost', 'http://127.0.0.1', 'https://192.168.2.204', 'https://172.18.0.1', 'https://172.17.0.1', 'https://172.19.0.1', 'https://[2003:ed:ef1c:6626:5054:ff:fe1e:d162]', 'https://[2003:ed:ef1c:6626:50c7:4f65:9636:8153]', 'https://\n', 'https://portal.bernauer24.com', 'https://https://portal.bernauer24.com/idm/user_overview']|
|CSRF_USE_SESSIONS|False|
|DATABASES|{'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': '/var/lib/libre-workspace/portal/db.sqlite3', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}}|
|DATABASE_ROUTERS|[]|
|DATA_UPLOAD_MAX_MEMORY_SIZE|2621440|
|DATA_UPLOAD_MAX_NUMBER_FIELDS|1000|
|DATA_UPLOAD_MAX_NUMBER_FILES|100|
|DATETIME_FORMAT|'N j, Y, P'|
|DATETIME_INPUT_FORMATS|['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']|
|DATE_FORMAT|'N j, Y'|
|DATE_INPUT_FORMATS|['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']|
|DEBUG|True|
|DEBUG_PROPAGATE_EXCEPTIONS|False|
|DECIMAL_SEPARATOR|'.'|
|DEFAULT_AUTO_FIELD|'django.db.models.BigAutoField'|
|DEFAULT_CHARSET|'utf-8'|
|DEFAULT_EXCEPTION_REPORTER|'django.views.debug.ExceptionReporter'|
|DEFAULT_EXCEPTION_REPORTER_FILTER|'django.views.debug.SafeExceptionReporterFilter'|
|DEFAULT_FROM_EMAIL|'webmaster@localhost'|
|DEFAULT_INDEX_TABLESPACE|''|
|DEFAULT_TABLESPACE|''|
|DISALLOWED_USER_AGENTS|[]|
|EMAIL_BACKEND|'django.core.mail.backends.smtp.EmailBackend'|
|EMAIL_HOST|'mail.gmx.net'|
|EMAIL_HOST_EMAIL|'christian.bernauer@imail.de'|
|EMAIL_HOST_PASSWORD|'********************'|
|EMAIL_HOST_USER|'christian.bernauer@imail.de'|
|EMAIL_PORT|587|
|EMAIL_SSL_CERTFILE|None|
|EMAIL_SSL_KEYFILE|'********************'|
|EMAIL_SUBJECT_PREFIX|'[Django] '|
|EMAIL_TIMEOUT|None|
|EMAIL_USE_LOCALTIME|False|
|EMAIL_USE_SSL|False|
|EMAIL_USE_TLS|True|
|FILE_UPLOAD_DIRECTORY_PERMISSIONS|None|
|FILE_UPLOAD_HANDLERS|['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']|
|FILE_UPLOAD_MAX_MEMORY_SIZE|2621440|
|FILE_UPLOAD_PERMISSIONS|420|
|FILE_UPLOAD_TEMP_DIR|None|
|FIRST_DAY_OF_WEEK|0|
|FIXTURE_DIRS|[]|
|FORCE_SCRIPT_NAME|None|
|FORMAT_MODULE_PATH|None|
|FORMS_URLFIELD_ASSUME_HTTPS|False|
|FORM_RENDERER|'django.forms.renderers.DjangoTemplates'|
|HIDDEN_LDAP_USERS|'dns-hostname'|
|IGNORABLE_404_URLS|[]|
|INITIAL_ADMIN_PASSWORD_WITHOUT_LDAP|'********************'|
|INSTALLED_APPS|['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'oidc_provider', 'rest_framework', 'drf_spectacular', 'django_otp', 'django_otp.plugins.otp_totp', 'django_otp.plugins.otp_hotp', 'django_otp.plugins.otp_static', 'idm', 'app_dashboard']|
|INTERNAL_IPS|[]|
|LANGUAGES|(('en', 'Englisch'), ('de', 'Deutsch'))|
|LANGUAGES_BIDI|['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']|
|LANGUAGE_CODE|'de'|
|LANGUAGE_COOKIE_AGE|None|
|LANGUAGE_COOKIE_DOMAIN|None|
|LANGUAGE_COOKIE_HTTPONLY|False|
|LANGUAGE_COOKIE_NAME|'django_language'|
|LANGUAGE_COOKIE_PATH|'/'|
|LANGUAGE_COOKIE_SAMESITE|None|
|LANGUAGE_COOKIE_SECURE|False|
|LINUX_ARBEITSPLATZ_CONFIGURED|True|
|LOCALE_PATHS|[PosixPath('/usr/lib/libre-workspace/portal/locale')]|
|LOGGING|{'disable_existing_loggers': False, 'handlers': {'console': {'class': 'logging.StreamHandler'}}, 'loggers': {'django_auth_ldap': '********************'}, 'version': 1}|
|LOGGING_CONFIG|'logging.config.dictConfig'|
|LOGIN_REDIRECT_URL|'/accounts/profile/'|
|LOGIN_URL|'/idm/login'|
|LOGOUT_REDIRECT_URL|None|
|MANAGERS|[]|
|MEDIA_ROOT|'/var/lib/libre-workspace/portal/media/'|
|MEDIA_URL|'/media/'|
|MESSAGE_STORAGE|'django.contrib.messages.storage.fallback.FallbackStorage'|
|MIDDLEWARE|['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django_otp.middleware.OTPMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']|
|MIGRATION_MODULES|{}|
|MONTH_DAY_FORMAT|'F j'|
|NEXTCLOUD_INSTALLATION_DIRECTORY|'/var/www/nextcloud/'|
|NUMBER_GROUPING|0|
|OIDC_EXTRA_SCOPE_CLAIMS|'idm.oidc_provider_settings.CustomScopeClaims'|
|OIDC_IDTOKEN_INCLUDE_CLAIMS|'********************'|
|OIDC_USERINFO|'idm.oidc_provider_settings.userinfo'|
|PASSWORD_HASHERS|'********************'|
|PASSWORD_RESET_TIMEOUT|'********************'|
|PREPEND_WWW|False|
|REST_FRAMEWORK|{'DEFAULT_AUTHENTICATION_CLASSES': '********************', 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_PARSER_CLASSES': ['rest_framework.parsers.JSONParser'], 'DEFAULT_RENDERER_CLASSES': ['rest_framework.renderers.JSONRenderer'], 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', 'PAGE_SIZE': 10}|
|ROOT_URLCONF|'lac.urls'|
|SECRET_KEY|'********************'|
|SECRET_KEY_FALLBACKS|'********************'|
|SECURE_CONTENT_TYPE_NOSNIFF|True|
|SECURE_CROSS_ORIGIN_OPENER_POLICY|'same-origin'|
|SECURE_HSTS_INCLUDE_SUBDOMAINS|False|
|SECURE_HSTS_PRELOAD|False|
|SECURE_HSTS_SECONDS|0|
|SECURE_PROXY_SSL_HEADER|None|
|SECURE_REDIRECT_EXEMPT|[]|
|SECURE_REFERRER_POLICY|'same-origin'|
|SECURE_SSL_HOST|None|
|SECURE_SSL_REDIRECT|False|
|SERVER_EMAIL|'root@localhost'|
|SESSION_CACHE_ALIAS|'default'|
|SESSION_COOKIE_AGE|1209600|
|SESSION_COOKIE_DOMAIN|None|
|SESSION_COOKIE_HTTPONLY|True|
|SESSION_COOKIE_NAME|'sessionid'|
|SESSION_COOKIE_PATH|'/'|
|SESSION_COOKIE_SAMESITE|'Lax'|
|SESSION_COOKIE_SECURE|False|
|SESSION_ENGINE|'django.contrib.sessions.backends.cache'|
|SESSION_EXPIRE_AT_BROWSER_CLOSE|False|
|SESSION_FILE_PATH|None|
|SESSION_SAVE_EVERY_REQUEST|False|
|SESSION_SERIALIZER|'django.contrib.sessions.serializers.JSONSerializer'|
|SETTINGS_MODULE|'lac.settings'|
|SHORT_DATETIME_FORMAT|'m/d/Y P'|
|SHORT_DATE_FORMAT|'m/d/Y'|
|SIGNING_BACKEND|'django.core.signing.TimestampSigner'|
|SILENCED_SYSTEM_CHECKS|[]|
|SPECTACULAR_SETTINGS|{'DESCRIPTION': 'Ignore the Authorize button and curl code ' 'snippets.<br>Documentation available at <a ' 'href="https://docs.libre-workspace.org/modules/libre-workspace-portal.html#api" ' 'target="_blank">Libre Workspace Portal API Documentation</a>.', 'SERVE_INCLUDE_SCHEMA': False, 'SWAGGER_UI_SETTINGS': {'deepLinking': True}, 'TITLE': 'Libre Workspace API', 'VERSION': '1.0.0'}|
|STATICFILES_DIRS|[PosixPath('/usr/lib/libre-workspace/portal/lac/static')]|
|STATICFILES_FINDERS|['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']|
|STATIC_ROOT|'/var/www/libre-workspace-static/'|
|STATIC_URL|'/static/'|
|STORAGES|{'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}|
|TEMPLATES|[{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/usr/lib/libre-workspace/portal/idm/templates'), PosixPath('/usr/lib/libre-workspace/portal/unix/templates'), PosixPath('/usr/lib/libre-workspace/portal/lac/templates'), PosixPath('/usr/lib/libre-workspace/portal/welcome/templates'), PosixPath('/usr/lib/libre-workspace/portal/app_dashboard/templates'), PosixPath('/usr/lib/libre-workspace/portal/addon_center/templates')], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'lac.context_processors.global_settings']}}]|
|TEST_NON_SERIALIZED_APPS|[]|
|TEST_RUNNER|'django.test.runner.DiscoverRunner'|
|THOUSAND_SEPARATOR|','|
|TIME_FORMAT|'P'|
|TIME_INPUT_FORMATS|['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']|
|TIME_ZONE|'Europe/Berlin'|
|USE_I18N|True|
|USE_L10N|True|
|USE_THOUSAND_SEPARATOR|False|
|USE_TZ|True|
|USE_X_FORWARDED_HOST|False|
|USE_X_FORWARDED_PORT|False|
|WSGI_APPLICATION|'lac.wsgi.application'|
|X_FRAME_OPTIONS|'DENY'|
|YEAR_MONTH_FORMAT|'F Y'|
You’re seeing this error because you have `DEBUG = True` in your Django settings file. Change that to `False`, and Django will display a standard page generated by the handler for this status code.