diff --git a/backend/open_webui/utils/tools.py b/backend/open_webui/utils/tools.py index ebf744d7d7..31485112a9 100644 --- a/backend/open_webui/utils/tools.py +++ b/backend/open_webui/utils/tools.py @@ -145,15 +145,13 @@ async def build_tool_server_headers( auth_type = connection.get('auth_type', 'bearer') headers = {} - cookies = {} + cookies = getattr(request, 'cookies', {}) if connection.get('forward_cookies', False) else {} if auth_type == 'bearer': headers.update(bearer_auth_header(connection.get('key', ''))) elif auth_type == 'session': - cookies = request.cookies if hasattr(request, 'cookies') else {} headers.update(bearer_auth_header(request.state.token.credentials)) elif auth_type == 'system_oauth': - cookies = request.cookies if hasattr(request, 'cookies') else {} oauth_token = extra_params.get('__oauth_token__', None) if oauth_token: headers.update(bearer_auth_header(oauth_token.get('access_token', ''))) @@ -1393,16 +1391,14 @@ async def get_terminal_tools( # Build auth headers auth_type = connection.get('auth_type', 'bearer') - cookies = {} + cookies = getattr(request, 'cookies', {}) if connection.get('forward_cookies', False) else {} headers = {'Content-Type': 'application/json', 'X-User-Id': user.id} if auth_type == 'bearer': headers.update(bearer_auth_header(connection.get('key', ''))) elif auth_type == 'session': - cookies = request.cookies headers.update(bearer_auth_header(request.state.token.credentials)) elif auth_type == 'system_oauth': - cookies = request.cookies oauth_token = extra_params.get('__oauth_token__', None) if oauth_token: headers.update(bearer_auth_header(oauth_token.get('access_token', ''))) diff --git a/src/lib/components/AddTerminalServerModal.svelte b/src/lib/components/AddTerminalServerModal.svelte index 15be4244e8..15a1f1b00c 100644 --- a/src/lib/components/AddTerminalServerModal.svelte +++ b/src/lib/components/AddTerminalServerModal.svelte @@ -5,6 +5,7 @@ import Modal from '$lib/components/common/Modal.svelte'; import SensitiveInput from '$lib/components/common/SensitiveInput.svelte'; + import Switch from '$lib/components/common/Switch.svelte'; import XMark from '$lib/components/icons/XMark.svelte'; import AccessControlModal from '$lib/components/workspace/common/AccessControlModal.svelte'; import AccessButton from '$lib/components/common/AccessButton.svelte'; @@ -34,6 +35,7 @@ let name = ''; let id = ''; let auth_type = 'bearer'; + let forwardCookies = false; let path = '/openapi.json'; let enabled = false; let chatUploads: 'default' | 'filesystem' = 'default'; @@ -73,6 +75,7 @@ }; const init = () => { + forwardCookies = connection?.forward_cookies ?? false; if (connection) { id = connection?.id ?? ''; url = connection.url; @@ -125,6 +128,7 @@ key = ''; name = ''; auth_type = 'bearer'; + forwardCookies = false; path = '/openapi.json'; enabled = false; chatUploads = 'default'; @@ -393,6 +397,7 @@ name, path, auth_type, + ...(!direct ? { forward_cookies: forwardCookies } : {}), enabled: enabled, config: connectionConfig, // Policy fields @@ -874,6 +879,24 @@ {#if showAdvanced} + {#if !direct} +
+ {$i18n.t('Forward cookies from your Open WebUI request to this server.')} +
++ {$i18n.t('Forward cookies from your Open WebUI request to this server.')} +
+