mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 17:20:30 +08:00
user login in access log
This commit is contained in:
parent
9bd83b886e
commit
eeecf78796
@ -6,7 +6,7 @@ kvmd:
|
|||||||
host: 127.0.0.1
|
host: 127.0.0.1
|
||||||
port: 8081
|
port: 8081
|
||||||
heartbeat: 3.0
|
heartbeat: 3.0
|
||||||
access_log_format: "[%{X-Real-IP}i] '%r' => %s; size=%b --- referer='%{Referer}i'; user_agent='%{User-Agent}i'"
|
access_log_format: "[%P / %{X-Real-IP}i] '%r' => %s; size=%b --- referer='%{Referer}i'; user_agent='%{User-Agent}i'"
|
||||||
|
|
||||||
auth:
|
auth:
|
||||||
htpasswd: /etc/kvmd/htpasswd
|
htpasswd: /etc/kvmd/htpasswd
|
||||||
|
|||||||
@ -6,7 +6,7 @@ kvmd:
|
|||||||
host: 127.0.0.1
|
host: 127.0.0.1
|
||||||
port: 8081
|
port: 8081
|
||||||
heartbeat: 3.0
|
heartbeat: 3.0
|
||||||
access_log_format: "[%{X-Real-IP}i] '%r' => %s; size=%b --- referer='%{Referer}i'; user_agent='%{User-Agent}i'"
|
access_log_format: "[%P / %{X-Real-IP}i] '%r' => %s; size=%b --- referer='%{Referer}i'; user_agent='%{User-Agent}i'"
|
||||||
|
|
||||||
auth:
|
auth:
|
||||||
htpasswd: /etc/kvmd/htpasswd
|
htpasswd: /etc/kvmd/htpasswd
|
||||||
|
|||||||
@ -33,5 +33,5 @@ class AuthManager:
|
|||||||
if user:
|
if user:
|
||||||
get_logger().info("Logged out user %r", user)
|
get_logger().info("Logged out user %r", user)
|
||||||
|
|
||||||
def check(self, token: str) -> bool:
|
def check(self, token: str) -> Optional[str]:
|
||||||
return (token in self.__tokens)
|
return self.__tokens.get(token)
|
||||||
|
|||||||
@ -34,6 +34,23 @@ from .msd import MassStorageDevice
|
|||||||
from .streamer import Streamer
|
from .streamer import Streamer
|
||||||
|
|
||||||
|
|
||||||
|
# =====
|
||||||
|
try:
|
||||||
|
from aiohttp.web import AccessLogger # type: ignore # pylint: disable=ungrouped-imports
|
||||||
|
except ImportError:
|
||||||
|
from aiohttp.helpers import AccessLogger # type: ignore # pylint: disable=ungrouped-imports
|
||||||
|
|
||||||
|
|
||||||
|
_ATTR_KVMD_USER = "kvmd_user"
|
||||||
|
|
||||||
|
|
||||||
|
def _format_P(request: aiohttp.web.BaseRequest, *_, **__) -> str: # type: ignore # pylint: disable=invalid-name
|
||||||
|
return (getattr(request, _ATTR_KVMD_USER, None) or "-")
|
||||||
|
|
||||||
|
|
||||||
|
AccessLogger._format_P = staticmethod(_format_P) # type: ignore # pylint: disable=protected-access
|
||||||
|
|
||||||
|
|
||||||
# =====
|
# =====
|
||||||
class HttpError(Exception):
|
class HttpError(Exception):
|
||||||
pass
|
pass
|
||||||
@ -97,8 +114,10 @@ def _exposed(http_method: str, path: str, auth_required: bool=True) -> Callable:
|
|||||||
if auth_required:
|
if auth_required:
|
||||||
token = request.cookies.get(_COOKIE_AUTH_TOKEN, "")
|
token = request.cookies.get(_COOKIE_AUTH_TOKEN, "")
|
||||||
if token:
|
if token:
|
||||||
if not self._auth_manager.check(_valid_token(token)):
|
user = self._auth_manager.check(_valid_token(token))
|
||||||
|
if not user:
|
||||||
raise ForbiddenError("Forbidden")
|
raise ForbiddenError("Forbidden")
|
||||||
|
setattr(request, _ATTR_KVMD_USER, user)
|
||||||
else:
|
else:
|
||||||
raise UnauthorizedError("Unauthorized")
|
raise UnauthorizedError("Unauthorized")
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@ kvmd:
|
|||||||
host: 0.0.0.0
|
host: 0.0.0.0
|
||||||
port: 8081
|
port: 8081
|
||||||
heartbeat: 3.0
|
heartbeat: 3.0
|
||||||
access_log_format: "[%{X-Real-IP}i] '%r' => %s; size=%b --- referer='%{Referer}i'; user_agent='%{User-Agent}i'"
|
access_log_format: "[%P / %{X-Real-IP}i] '%r' => %s; size=%b --- referer='%{Referer}i'; user_agent='%{User-Agent}i'"
|
||||||
|
|
||||||
auth:
|
auth:
|
||||||
htpasswd: /etc/kvmd/htpasswd
|
htpasswd: /etc/kvmd/htpasswd
|
||||||
|
|||||||
@ -26,7 +26,7 @@ deps =
|
|||||||
-rrequirements.txt
|
-rrequirements.txt
|
||||||
|
|
||||||
[testenv:vulture]
|
[testenv:vulture]
|
||||||
commands = vulture --ignore-decorators=@_exposed,@_system_task kvmd genmap.py testenv/vulture-wl.py
|
commands = vulture --ignore-names=_format_P --ignore-decorators=@_exposed,@_system_task kvmd genmap.py testenv/vulture-wl.py
|
||||||
deps =
|
deps =
|
||||||
vulture
|
vulture
|
||||||
-rrequirements.txt
|
-rrequirements.txt
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user