mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-11-03 22:04:57 +08:00
fix(trimemedia): 访问码校验失败日志不再记录设备访问码
verify_access_code 把设备访问码拼进校验地址的路径段(/c/<code>),一旦连不上 就把整条 URL 写进 error 日志,明文凭据随之落到实例日志文件里;404 与状态码两 个分支本来就不带访问码,这里补齐同一条边界:只记录设备根地址。 这是 #7157 之后对其余裸 {url} 日志点做完整评估时唯一确认会写入凭据的一处:其余 调用点记录的是站点根地址,或把 api_key 经 params 传递、URL 本身不含凭据。
This commit is contained in:
@@ -285,7 +285,8 @@ class Api:
|
||||
url = f"{root}/c/{quote(self._access_code, safe='')}"
|
||||
res = self._request_utils.get_res(url, allow_redirects=True)
|
||||
if res is None:
|
||||
logger.error(f"校验飞牛访问码失败,无法访问 {url}")
|
||||
# 访问码是 URL 路径段而非查询参数,整串进日志等于泄露凭据
|
||||
logger.error(f"校验飞牛访问码失败,无法访问 {root}")
|
||||
return False
|
||||
if res.status_code == 404:
|
||||
# 访问码错误或校验失败时返回404
|
||||
|
||||
@@ -150,3 +150,24 @@ def test_module_image_cookies_returns_none_when_no_instance_owns_image(monkeypat
|
||||
|
||||
assert module.mediaserver_image_cookies(image_url="https://other.example/poster.jpg") is None
|
||||
server.get_image_cookies.assert_called_once_with("https://other.example/poster.jpg")
|
||||
|
||||
|
||||
def test_verify_access_code_failure_log_omits_access_code(monkeypatch):
|
||||
"""
|
||||
访问码是校验地址的路径段,连接失败时日志只记录设备根地址。
|
||||
|
||||
:param monkeypatch: 隔离 HTTP 会话与日志输出
|
||||
"""
|
||||
api = trimemedia_api.Api(
|
||||
host="https://trimemedia.example/v",
|
||||
apikey="apikey",
|
||||
access_code="device-access-code",
|
||||
)
|
||||
logs = Mock()
|
||||
monkeypatch.setattr(trimemedia_api, "logger", logs)
|
||||
monkeypatch.setattr(api._request_utils, "get_res", lambda *_args, **_kwargs: None)
|
||||
|
||||
assert api.verify_access_code() is False
|
||||
message = logs.error.call_args[0][0]
|
||||
assert "device-access-code" not in message
|
||||
assert "https://trimemedia.example" in message
|
||||
|
||||
Reference in New Issue
Block a user