mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-11 20:05:19 +00:00
refac
This commit is contained in:
parent
92aafd6c06
commit
c8b2313362
3 changed files with 17 additions and 13 deletions
|
|
@ -1941,6 +1941,7 @@ if len(app.state.config.TOOL_SERVER_CONNECTIONS) > 0:
|
|||
if tool_server_connection.get("type", "openapi") == "mcp":
|
||||
server_id = tool_server_connection.get("info", {}).get("id")
|
||||
auth_type = tool_server_connection.get("auth_type", "none")
|
||||
|
||||
if server_id and auth_type == "oauth_2.1":
|
||||
oauth_client_info = tool_server_connection.get("info", {}).get(
|
||||
"oauth_client_info", ""
|
||||
|
|
|
|||
|
|
@ -167,19 +167,19 @@ async def set_tool_servers_config(
|
|||
form_data: ToolServersConfigForm,
|
||||
user=Depends(get_admin_user),
|
||||
):
|
||||
mcp_server_ids = [
|
||||
conn.get("info", {}).get("id")
|
||||
for conn in form_data.TOOL_SERVER_CONNECTIONS
|
||||
if conn.get("type") == "mcp"
|
||||
]
|
||||
for connection in request.app.state.config.TOOL_SERVER_CONNECTIONS:
|
||||
server_type = connection.get("type", "openapi")
|
||||
auth_type = connection.get("auth_type", "none")
|
||||
|
||||
for server_id in mcp_server_ids:
|
||||
# Remove existing OAuth clients for MCP tool servers that are no longer present
|
||||
client_key = f"mcp:{server_id}"
|
||||
try:
|
||||
request.app.state.oauth_client_manager.remove_client(client_key)
|
||||
except:
|
||||
pass
|
||||
if auth_type == "oauth_2.1":
|
||||
# Remove existing OAuth clients for tool servers
|
||||
server_id = connection.get("info", {}).get("id")
|
||||
client_key = f"{server_type}:{server_id}"
|
||||
|
||||
try:
|
||||
request.app.state.oauth_client_manager.remove_client(client_key)
|
||||
except:
|
||||
pass
|
||||
|
||||
# Set new tool server connections
|
||||
request.app.state.config.TOOL_SERVER_CONNECTIONS = [
|
||||
|
|
@ -193,6 +193,7 @@ async def set_tool_servers_config(
|
|||
if server_type == "mcp":
|
||||
server_id = connection.get("info", {}).get("id")
|
||||
auth_type = connection.get("auth_type", "none")
|
||||
|
||||
if auth_type == "oauth_2.1" and server_id:
|
||||
try:
|
||||
oauth_client_info = connection.get("info", {}).get(
|
||||
|
|
|
|||
|
|
@ -582,6 +582,7 @@ class OAuthClientManager:
|
|||
|
||||
client = self.get_client(client_id)
|
||||
client_info = self.get_client_info(client_id)
|
||||
|
||||
if client is None or client_info is None:
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND)
|
||||
|
||||
|
|
@ -593,6 +594,7 @@ class OAuthClientManager:
|
|||
"Detected invalid OAuth client %s; attempting re-registration",
|
||||
client_id,
|
||||
)
|
||||
|
||||
re_registered = await self._re_register_client(request, client_id)
|
||||
if not re_registered:
|
||||
raise HTTPException(
|
||||
|
|
@ -799,7 +801,7 @@ class OAuthClientManager:
|
|||
return None
|
||||
|
||||
async def handle_authorize(self, request, client_id: str) -> RedirectResponse:
|
||||
await self._ensure_valid_client_registration(request, client_id)
|
||||
# await self._ensure_valid_client_registration(request, client_id)
|
||||
|
||||
client = self.get_client(client_id)
|
||||
if client is None:
|
||||
|
|
|
|||
Loading…
Reference in a new issue