From 5271bd21e81117d632b0d632e89a526680dec46f Mon Sep 17 00:00:00 2001
From: "meilin.huang" <954537473@qq.com>
Date: Mon, 18 Jul 2022 20:36:31 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95=E5=BC=BA=E5=88=B6?=
=?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=BC=B1=E5=AF=86=E7=A0=81&=E5=85=B3?=
=?UTF-8?q?=E9=94=AE=E4=BF=A1=E6=81=AF=E5=8A=A0=E5=AF=86=E4=BC=A0=E8=BE=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mayfly_go_web/package.json | 3 +-
mayfly_go_web/src/common/openApi.ts | 2 +
mayfly_go_web/src/common/rsa.ts | 37 +
.../views/login/component/AccountLogin.vue | 192 +-
mayfly_go_web/src/views/ops/db/DbEdit.vue | 10 +-
.../src/views/ops/machine/MachineEdit.vue | 11 +-
.../src/views/ops/mongo/MongoDataOp.vue | 8 +-
.../src/views/ops/mongo/MongoEdit.vue | 7 +-
.../src/views/ops/redis/RedisEdit.vue | 22 +-
.../src/views/ops/redis/RedisList.vue | 2 +-
mayfly_go_web/yarn.lock | 2546 +++++++++--------
server/go.mod | 4 +-
server/initialize/router.go | 5 +-
server/internal/common/api/common.go | 16 +
server/internal/common/router/common.go | 21 +
server/internal/devops/api/db.go | 6 +
server/internal/devops/api/form/redis.go | 1 +
server/internal/devops/api/machine.go | 5 +
server/internal/devops/api/mongo.go | 5 +
server/internal/devops/api/redis.go | 6 +
.../internal/devops/application/redis_app.go | 5 +-
server/internal/sys/api/account.go | 58 +-
server/internal/sys/api/form/account.go | 6 +
server/internal/sys/router/account.go | 8 +
server/pkg/biz/bizerror.go | 20 +-
server/pkg/ctx/log_handler.go | 2 +-
server/pkg/ginx/ginx.go | 2 +-
server/pkg/model/result.go | 2 +-
server/pkg/utils/crypto_utils.go | 119 +
29 files changed, 1804 insertions(+), 1327 deletions(-)
create mode 100644 mayfly_go_web/src/common/rsa.ts
create mode 100644 server/internal/common/api/common.go
create mode 100644 server/internal/common/router/common.go
diff --git a/mayfly_go_web/package.json b/mayfly_go_web/package.json
index 9f08c35d..dc88bb1b 100644
--- a/mayfly_go_web/package.json
+++ b/mayfly_go_web/package.json
@@ -14,6 +14,7 @@
"cropperjs": "^1.5.11",
"echarts": "^5.3.3",
"element-plus": "^2.2.9",
+ "jsencrypt": "^3.2.1",
"jsoneditor": "^9.9.0",
"lodash": "^4.17.21",
"mitt": "^3.0.0",
@@ -23,7 +24,7 @@
"sql-formatter": "^7.0.3",
"vue": "^3.2.37",
"vue-clipboard3": "^1.0.1",
- "vue-router": "^4.0.16",
+ "vue-router": "^4.1.2",
"vuex": "^4.0.2",
"xterm": "^4.19.0",
"xterm-addon-fit": "^0.5.0"
diff --git a/mayfly_go_web/src/common/openApi.ts b/mayfly_go_web/src/common/openApi.ts
index 2bd17f60..e72c5136 100644
--- a/mayfly_go_web/src/common/openApi.ts
+++ b/mayfly_go_web/src/common/openApi.ts
@@ -2,6 +2,8 @@ import request from './request'
export default {
login: (param: any) => request.request('POST', '/sys/accounts/login', param, null),
+ changePwd: (param: any) => request.request('POST', '/sys/accounts/change-pwd', param, null),
+ getPublicKey: () => request.request('GET', '/common/public-key', null, null),
captcha: () => request.request('GET', '/sys/captcha', null, null),
logout: (param: any) => request.request('POST', '/sys/accounts/logout/{token}', param, null),
getMenuRoute: (param: any) => request.request('Get', '/sys/resources/account', param, null)
diff --git a/mayfly_go_web/src/common/rsa.ts b/mayfly_go_web/src/common/rsa.ts
new file mode 100644
index 00000000..8f907e56
--- /dev/null
+++ b/mayfly_go_web/src/common/rsa.ts
@@ -0,0 +1,37 @@
+import openApi from './openApi';
+import JSEncrypt from 'jsencrypt'
+import { notBlank } from './assert';
+
+var encryptor: any = null
+
+export async function getRsaPublicKey() {
+ let publicKey = sessionStorage.getItem('RsaPublicKey')
+ if (publicKey) {
+ return publicKey
+ }
+ publicKey = await openApi.getPublicKey() as string
+ sessionStorage.setItem('RsaPublicKey', publicKey)
+ return publicKey
+}
+
+/**
+ * 公钥加密指定值
+ *
+ * @param value value
+ * @returns 加密后的值
+ */
+export async function RsaEncrypt(value: any) {
+ // 不存在则返回空值
+ if (!value) {
+ return ""
+ }
+ if (encryptor != null) {
+ return encryptor.encrypt(value)
+ }
+ console.log(value)
+ encryptor = new JSEncrypt()
+ const publicKey = await getRsaPublicKey() as string;
+ notBlank(publicKey, "获取公钥失败")
+ encryptor.setPublicKey(publicKey)//设置公钥
+ return encryptor.encrypt(value)
+}
\ No newline at end of file
diff --git a/mayfly_go_web/src/views/login/component/AccountLogin.vue b/mayfly_go_web/src/views/login/component/AccountLogin.vue
index b17cdd7a..c43d37f4 100644
--- a/mayfly_go_web/src/views/login/component/AccountLogin.vue
+++ b/mayfly_go_web/src/views/login/component/AccountLogin.vue
@@ -1,54 +1,75 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+ 登 录
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
![]()
-
-
-
-
-
-
- 登 录
-
-
-
+
+
+
+
+
+
+
+