# ======================================================================
# Zugangssperre der Testinstanz
#
# Dieser Block wird von scripts/deploy_dev.py der Repo-.htaccess
# VORANGESTELLT und nur auf die Testinstanz hochgeladen. Die Produktion
# bekommt ihn nie zu sehen, deshalb steht er hier und nicht in der
# .htaccess selbst.
#
# Warum ueberhaupt: Die Testinstanz laeuft mit app.debug = true, mit
# Beispieldaten und mit einem Datenbestand, den jeder Testlauf loeschen
# darf. Nichts davon gehoert ins offene Netz - weder fuer Menschen noch
# fuer Suchmaschinen.
#
# Die Ausnahme fuer /api/ mit Token: Ohne sie muesste jedes SDK und jedes
# Testskript zusaetzlich zu seinem Token auch noch die Basic-Auth-Daten
# kennen. Damit wuerde die Testinstanz etwas anderes pruefen als die
# Produktion - naemlich einen Aufrufweg, den es dort nicht gibt. Die
# Ausnahme greift nur unterhalb von /api/ und nur, wenn ein Token-Header
# ueberhaupt vorhanden ist; geprueft wird er weiterhin von ApiAuth und
# TokenManager. Sie oeffnet also nichts, was auf dc.mhdf.de nicht ohnehin
# offen waere. WebUI, Installer und /docs/ bleiben in jedem Fall hinter
# der Basic-Auth.
#
# %DOCROOT% wird beim Deployment ersetzt.
# ======================================================================
SetEnvIfNoCase Request_URI "^/api/" DC_IS_API
SetEnvIf X-Agent-Token "." DC_HAS_TOKEN
SetEnvIf X-Master-Token "." DC_HAS_TOKEN
SetEnvIf X-License-Key "." DC_HAS_TOKEN
SetEnvIf X-Watchdog-Key "." DC_HAS_TOKEN
SetEnvIf Authorization "^Bearer\s+\S" DC_HAS_TOKEN
AuthType Basic
AuthName "Deploymentcenter Testinstanz"
AuthUserFile %DOCROOT%/config/.htpasswd
Require valid-user
Require env DC_IS_API
Require env DC_HAS_TOKEN
Require valid-user
Order allow,deny
Allow from env=DC_HAS_TOKEN
Satisfy any
# Ab hier folgt unveraendert die .htaccess aus dem Repository.
# ======================================================================