您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

__init__.py 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import importlib
  2. from api.hook.common.parameters import SignatureParameters, AuthenticationParameters, \
  3. SignatureReturn, AuthenticationReturn, PermissionReturn, ClientAuthenticationReturn, ClientAuthenticationParameters
  4. from api.settings import HOOK_MODULE, stat_logger,RetCode
  5. class HookManager:
  6. SITE_SIGNATURE = []
  7. SITE_AUTHENTICATION = []
  8. CLIENT_AUTHENTICATION = []
  9. PERMISSION_CHECK = []
  10. @staticmethod
  11. def init():
  12. if HOOK_MODULE is not None:
  13. for modules in HOOK_MODULE.values():
  14. for module in modules.split(";"):
  15. try:
  16. importlib.import_module(module)
  17. except Exception as e:
  18. stat_logger.exception(e)
  19. @staticmethod
  20. def register_site_signature_hook(func):
  21. HookManager.SITE_SIGNATURE.append(func)
  22. @staticmethod
  23. def register_site_authentication_hook(func):
  24. HookManager.SITE_AUTHENTICATION.append(func)
  25. @staticmethod
  26. def register_client_authentication_hook(func):
  27. HookManager.CLIENT_AUTHENTICATION.append(func)
  28. @staticmethod
  29. def register_permission_check_hook(func):
  30. HookManager.PERMISSION_CHECK.append(func)
  31. @staticmethod
  32. def client_authentication(parm: ClientAuthenticationParameters) -> ClientAuthenticationReturn:
  33. if HookManager.CLIENT_AUTHENTICATION:
  34. return HookManager.CLIENT_AUTHENTICATION[0](parm)
  35. return ClientAuthenticationReturn()
  36. @staticmethod
  37. def site_signature(parm: SignatureParameters) -> SignatureReturn:
  38. if HookManager.SITE_SIGNATURE:
  39. return HookManager.SITE_SIGNATURE[0](parm)
  40. return SignatureReturn()
  41. @staticmethod
  42. def site_authentication(parm: AuthenticationParameters) -> AuthenticationReturn:
  43. if HookManager.SITE_AUTHENTICATION:
  44. return HookManager.SITE_AUTHENTICATION[0](parm)
  45. return AuthenticationReturn()