Unverified Commit 0ac250a0 authored by Bowen Liang's avatar Bowen Liang Committed by GitHub

fix: check webhook key of Wecom tool in valid UUID form and fix typo (#2719)

parent 405a00bb
...@@ -4,9 +4,10 @@ import httpx ...@@ -4,9 +4,10 @@ import httpx
from core.tools.entities.tool_entities import ToolInvokeMessage from core.tools.entities.tool_entities import ToolInvokeMessage
from core.tools.tool.builtin_tool import BuiltinTool from core.tools.tool.builtin_tool import BuiltinTool
from core.tools.utils.uuid_utils import is_valid_uuid
class WecomRepositoriesTool(BuiltinTool): class WecomGroupBotTool(BuiltinTool):
def _invoke(self, user_id: str, tool_parameters: dict[str, Any] def _invoke(self, user_id: str, tool_parameters: dict[str, Any]
) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]: ) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
""" """
...@@ -17,8 +18,9 @@ class WecomRepositoriesTool(BuiltinTool): ...@@ -17,8 +18,9 @@ class WecomRepositoriesTool(BuiltinTool):
return self.create_text_message('Invalid parameter content') return self.create_text_message('Invalid parameter content')
hook_key = tool_parameters.get('hook_key', '') hook_key = tool_parameters.get('hook_key', '')
if not hook_key: if not is_valid_uuid(hook_key):
return self.create_text_message('Invalid parameter hook_key') return self.create_text_message(
f'Invalid parameter hook_key ${hook_key}, not a valid UUID')
msgtype = 'text' msgtype = 'text'
api_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send' api_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send'
......
from core.tools.provider.builtin.wecom.tools.wecom_group_bot import WecomRepositoriesTool from core.tools.provider.builtin.wecom.tools.wecom_group_bot import WecomGroupBotTool
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
class WecomProvider(BuiltinToolProviderController): class WecomProvider(BuiltinToolProviderController):
def _validate_credentials(self, credentials: dict) -> None: def _validate_credentials(self, credentials: dict) -> None:
WecomRepositoriesTool() WecomGroupBotTool()
pass pass
import uuid
def is_valid_uuid(uuid_str: str) -> bool:
try:
uuid.UUID(uuid_str)
return True
except Exception:
return False
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment