From 92c8f73ade3eb6da179ec04c9fc69e55156efdbd Mon Sep 17 00:00:00 2001 From: halo Date: Fri, 10 Jul 2026 16:03:53 +0800 Subject: [PATCH] fix: improve vendor string parsing in CryptoVendor class --- apps/common/sdk/gm/__init__.py | 17 +++++++++-------- apps/jumpserver/settings/libs.py | 1 + 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/common/sdk/gm/__init__.py b/apps/common/sdk/gm/__init__.py index 54d2600c6..c9b4f3715 100644 --- a/apps/common/sdk/gm/__init__.py +++ b/apps/common/sdk/gm/__init__.py @@ -10,14 +10,15 @@ class CryptoVendor(Enum): SCTU = "sctu" @classmethod - def from_str(cls, name: str): - try: - return cls[name.upper()] - except KeyError: - for vendor in cls: - if vendor.value.lower() == name.lower(): - return vendor - raise ValueError(f"Unknown GM Vendor: {name}") + def from_str(cls, name: str | None): + if name is None or not name.strip(): + return cls.PIICO + + name = name.strip().lower() + for vendor in cls: + if name in (vendor.name.lower(), vendor.value.lower()): + return vendor + raise ValueError(f"Unknown GM Vendor: {name}") def open_gm_device(vendor: CryptoVendor) -> Device: diff --git a/apps/jumpserver/settings/libs.py b/apps/jumpserver/settings/libs.py index cf4b765fe..2e0fdc351 100644 --- a/apps/jumpserver/settings/libs.py +++ b/apps/jumpserver/settings/libs.py @@ -237,6 +237,7 @@ DJANGO_REDIS_SCAN_ITERSIZE = 1000 # GM DEVICE GM_DEVICE_ENABLE = CONFIG.GM_DEVICE_ENABLE GM_VENDOR_NAME = CONFIG.GM_VENDOR_NAME +GM_DRIVER_PATH = CONFIG.GM_DRIVER_PATH LEAK_PASSWORD_DB_PATH = CONFIG.LEAK_PASSWORD_DB_PATH