INNER CODE UNIT · Python
_lan_access_allowed
slive777/OpenAver · web/app.py:329
def _lan_access_allowed(client_host, server_mode):
"""LAN access gate decision-core (testable, no I/O)。
這是 middleware 實際委派的決策函式(非平行複製)——middleware 在非 loopback
分支呼叫本函式,loopback 短路同樣比對 `_LOOPBACK_HOSTS`,故測得即所跑。
"""
if client_host in _LOOPBACK_HOSTS:
return True
return bool(server_mode)
# ============ 認證閘門(TASK-114a-T2)============
# deny-by-default 放行清單:未認證下只有這兩組 (method, path) 可以通過。
# CD-114a-8;具名常數 + 長度斷言(測試層)防止未來「順手多放一個」。
_VERIFY_ENDPOINT = ("POST", "/api/access/verify")
_HEALTH_ENDPOINT = ("GET", "/api/health")
_AUTH_ALLOWLIST = frozenset({_VERIFY_ENDPOINT, _HEALTH_ENDPOINT})