mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-06-04 11:14:10 +08:00
Http requests node add ssl verify (#18125)
Co-authored-by: lizb <lizb@sugon.com>
This commit is contained in:
parent
e1455cecd8
commit
b006b9ac0c
@ -48,25 +48,26 @@ def make_request(method, url, max_retries=SSRF_DEFAULT_MAX_RETRIES, **kwargs):
|
|||||||
write=dify_config.SSRF_DEFAULT_WRITE_TIME_OUT,
|
write=dify_config.SSRF_DEFAULT_WRITE_TIME_OUT,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if "ssl_verify" not in kwargs:
|
||||||
|
kwargs["ssl_verify"] = HTTP_REQUEST_NODE_SSL_VERIFY
|
||||||
|
|
||||||
|
ssl_verify = kwargs.pop("ssl_verify")
|
||||||
|
|
||||||
retries = 0
|
retries = 0
|
||||||
while retries <= max_retries:
|
while retries <= max_retries:
|
||||||
try:
|
try:
|
||||||
if dify_config.SSRF_PROXY_ALL_URL:
|
if dify_config.SSRF_PROXY_ALL_URL:
|
||||||
with httpx.Client(proxy=dify_config.SSRF_PROXY_ALL_URL, verify=HTTP_REQUEST_NODE_SSL_VERIFY) as client:
|
with httpx.Client(proxy=dify_config.SSRF_PROXY_ALL_URL, verify=ssl_verify) as client:
|
||||||
response = client.request(method=method, url=url, **kwargs)
|
response = client.request(method=method, url=url, **kwargs)
|
||||||
elif dify_config.SSRF_PROXY_HTTP_URL and dify_config.SSRF_PROXY_HTTPS_URL:
|
elif dify_config.SSRF_PROXY_HTTP_URL and dify_config.SSRF_PROXY_HTTPS_URL:
|
||||||
proxy_mounts = {
|
proxy_mounts = {
|
||||||
"http://": httpx.HTTPTransport(
|
"http://": httpx.HTTPTransport(proxy=dify_config.SSRF_PROXY_HTTP_URL, verify=ssl_verify),
|
||||||
proxy=dify_config.SSRF_PROXY_HTTP_URL, verify=HTTP_REQUEST_NODE_SSL_VERIFY
|
"https://": httpx.HTTPTransport(proxy=dify_config.SSRF_PROXY_HTTPS_URL, verify=ssl_verify),
|
||||||
),
|
|
||||||
"https://": httpx.HTTPTransport(
|
|
||||||
proxy=dify_config.SSRF_PROXY_HTTPS_URL, verify=HTTP_REQUEST_NODE_SSL_VERIFY
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
with httpx.Client(mounts=proxy_mounts, verify=HTTP_REQUEST_NODE_SSL_VERIFY) as client:
|
with httpx.Client(mounts=proxy_mounts, verify=ssl_verify) as client:
|
||||||
response = client.request(method=method, url=url, **kwargs)
|
response = client.request(method=method, url=url, **kwargs)
|
||||||
else:
|
else:
|
||||||
with httpx.Client(verify=HTTP_REQUEST_NODE_SSL_VERIFY) as client:
|
with httpx.Client(verify=ssl_verify) as client:
|
||||||
response = client.request(method=method, url=url, **kwargs)
|
response = client.request(method=method, url=url, **kwargs)
|
||||||
|
|
||||||
if response.status_code not in STATUS_FORCELIST:
|
if response.status_code not in STATUS_FORCELIST:
|
||||||
|
@ -90,6 +90,7 @@ class HttpRequestNodeData(BaseNodeData):
|
|||||||
params: str
|
params: str
|
||||||
body: Optional[HttpRequestNodeBody] = None
|
body: Optional[HttpRequestNodeBody] = None
|
||||||
timeout: Optional[HttpRequestNodeTimeout] = None
|
timeout: Optional[HttpRequestNodeTimeout] = None
|
||||||
|
ssl_verify: Optional[bool] = dify_config.HTTP_REQUEST_NODE_SSL_VERIFY
|
||||||
|
|
||||||
|
|
||||||
class Response:
|
class Response:
|
||||||
|
@ -88,6 +88,7 @@ class Executor:
|
|||||||
self.method = node_data.method
|
self.method = node_data.method
|
||||||
self.auth = node_data.authorization
|
self.auth = node_data.authorization
|
||||||
self.timeout = timeout
|
self.timeout = timeout
|
||||||
|
self.ssl_verify = node_data.ssl_verify
|
||||||
self.params = []
|
self.params = []
|
||||||
self.headers = {}
|
self.headers = {}
|
||||||
self.content = None
|
self.content = None
|
||||||
@ -316,6 +317,7 @@ class Executor:
|
|||||||
"headers": headers,
|
"headers": headers,
|
||||||
"params": self.params,
|
"params": self.params,
|
||||||
"timeout": (self.timeout.connect, self.timeout.read, self.timeout.write),
|
"timeout": (self.timeout.connect, self.timeout.read, self.timeout.write),
|
||||||
|
"ssl_verify": self.ssl_verify,
|
||||||
"follow_redirects": True,
|
"follow_redirects": True,
|
||||||
"max_retries": self.max_retries,
|
"max_retries": self.max_retries,
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,7 @@ class HttpRequestNode(BaseNode[HttpRequestNodeData]):
|
|||||||
"max_read_timeout": dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT,
|
"max_read_timeout": dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT,
|
||||||
"max_write_timeout": dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT,
|
"max_write_timeout": dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT,
|
||||||
},
|
},
|
||||||
|
"ssl_verify": dify_config.HTTP_REQUEST_NODE_SSL_VERIFY,
|
||||||
},
|
},
|
||||||
"retry_config": {
|
"retry_config": {
|
||||||
"max_retries": dify_config.SSRF_DEFAULT_MAX_RETRIES,
|
"max_retries": dify_config.SSRF_DEFAULT_MAX_RETRIES,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user