From 6c251e1a496d3d068deb067c549c5f7de329f4e4 Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Mon, 10 Mar 2025 22:18:57 +0800 Subject: [PATCH] fix: Fix an exception caused by insufficient encryption string length (#8114) --- agent/server/server.go | 2 +- agent/utils/encrypt/encrypt.go | 14 ++++++++++++++ .../src/views/container/container/commit/index.vue | 3 +++ .../views/container/container/operate/index.vue | 2 +- frontend/src/views/container/image/save/index.vue | 2 +- 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/agent/server/server.go b/agent/server/server.go index 58028530c..e680e7861 100644 --- a/agent/server/server.go +++ b/agent/server/server.go @@ -43,8 +43,8 @@ func Start() { validator.Init() gin.SetMode("debug") cron.Run() - InitOthers() hook.Init() + InitOthers() rootRouter := router.Routers() diff --git a/agent/utils/encrypt/encrypt.go b/agent/utils/encrypt/encrypt.go index 519f45375..6130fceaf 100644 --- a/agent/utils/encrypt/encrypt.go +++ b/agent/utils/encrypt/encrypt.go @@ -29,6 +29,13 @@ func StringEncryptWithKey(text, key string) (string, error) { if len(text) == 0 { return "", nil } + if len(key) < 16 { + for len(key) < 16 { + key += "u" + } + } else { + key = key[:16] + } pass := []byte(text) xpass, err := aesEncryptWithSalt([]byte(key), pass) if err == nil { @@ -65,6 +72,13 @@ func StringDecryptWithKey(text, key string) (string, error) { if len(text) == 0 { return "", nil } + if len(key) < 16 { + for len(key) < 16 { + key += "u" + } + } else { + key = key[:16] + } bytesPass, err := base64.StdEncoding.DecodeString(text) if err != nil { return "", err diff --git a/frontend/src/views/container/container/commit/index.vue b/frontend/src/views/container/container/commit/index.vue index a5fc8443d..40e108267 100644 --- a/frontend/src/views/container/container/commit/index.vue +++ b/frontend/src/views/container/container/commit/index.vue @@ -69,6 +69,9 @@ interface DialogProps { containerName: string; } const acceptParams = (props: DialogProps): void => { + form.newImageName = ''; + form.comment = ''; + form.author = ''; form.containerID = props.containerID; form.containerName = props.containerName; drawerVisible.value = true; diff --git a/frontend/src/views/container/container/operate/index.vue b/frontend/src/views/container/container/operate/index.vue index c21e2f1bb..2fdc69e01 100644 --- a/frontend/src/views/container/container/operate/index.vue +++ b/frontend/src/views/container/container/operate/index.vue @@ -540,7 +540,7 @@ const search = async () => { form.labels = res.data.labels || []; form.env = res.data.env || []; form.exposedPorts = res.data.exposedPorts || []; - for (const item of res.data.exposedPorts) { + for (const item of form.exposedPorts) { if (item.hostIP) { item.host = item.hostIP + ':' + item.hostPort; } else { diff --git a/frontend/src/views/container/image/save/index.vue b/frontend/src/views/container/image/save/index.vue index 9c9aea908..be2427084 100644 --- a/frontend/src/views/container/image/save/index.vue +++ b/frontend/src/views/container/image/save/index.vue @@ -1,5 +1,5 @@