mirror of
https://github.com/langgenius/dify.git
synced 2026-05-03 07:46:31 +08:00
fix(plugin): fix EndUser id does not match session_id
This commit is contained in:
parent
b5a7e64e19
commit
8352128a27
@ -420,7 +420,13 @@ class PluginUploadFileRequestApi(Resource):
|
|||||||
)
|
)
|
||||||
def post(self, user_model: Account | EndUser, tenant_model: Tenant, payload: RequestRequestUploadFile):
|
def post(self, user_model: Account | EndUser, tenant_model: Tenant, payload: RequestRequestUploadFile):
|
||||||
# generate signed url
|
# generate signed url
|
||||||
url = get_signed_file_url_for_plugin(payload.filename, payload.mimetype, tenant_model.id, user_model.id)
|
url = get_signed_file_url_for_plugin(
|
||||||
|
payload.filename,
|
||||||
|
payload.mimetype,
|
||||||
|
tenant_model.id,
|
||||||
|
user_model.id,
|
||||||
|
user_model.session_id if isinstance(user_model, EndUser) else None,
|
||||||
|
)
|
||||||
return BaseBackwardsInvocationResponse(data={"url": url}).model_dump()
|
return BaseBackwardsInvocationResponse(data={"url": url}).model_dump()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,9 @@ def get_signed_file_url(upload_file_id: str) -> str:
|
|||||||
return f"{url}?timestamp={timestamp}&nonce={nonce}&sign={encoded_sign}"
|
return f"{url}?timestamp={timestamp}&nonce={nonce}&sign={encoded_sign}"
|
||||||
|
|
||||||
|
|
||||||
def get_signed_file_url_for_plugin(filename: str, mimetype: str, tenant_id: str, user_id: str) -> str:
|
def get_signed_file_url_for_plugin(
|
||||||
|
filename: str, mimetype: str, tenant_id: str, user_id: str, session_id: str | None
|
||||||
|
) -> str:
|
||||||
# Plugin access should use internal URL for Docker network communication
|
# Plugin access should use internal URL for Docker network communication
|
||||||
base_url = dify_config.INTERNAL_FILES_URL or dify_config.FILES_URL
|
base_url = dify_config.INTERNAL_FILES_URL or dify_config.FILES_URL
|
||||||
url = f"{base_url}/files/upload/for-plugin"
|
url = f"{base_url}/files/upload/for-plugin"
|
||||||
@ -31,7 +33,8 @@ def get_signed_file_url_for_plugin(filename: str, mimetype: str, tenant_id: str,
|
|||||||
sign = hmac.new(key, msg.encode(), hashlib.sha256).digest()
|
sign = hmac.new(key, msg.encode(), hashlib.sha256).digest()
|
||||||
encoded_sign = base64.urlsafe_b64encode(sign).decode()
|
encoded_sign = base64.urlsafe_b64encode(sign).decode()
|
||||||
|
|
||||||
return f"{url}?timestamp={timestamp}&nonce={nonce}&sign={encoded_sign}&user_id={user_id}&tenant_id={tenant_id}"
|
url_user_id = session_id or user_id
|
||||||
|
return f"{url}?timestamp={timestamp}&nonce={nonce}&sign={encoded_sign}&user_id={url_user_id}&tenant_id={tenant_id}"
|
||||||
|
|
||||||
|
|
||||||
def verify_plugin_file_signature(
|
def verify_plugin_file_signature(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user