From ecbd9dda6a03bcae166e9387f2c27f4efb455504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=99=93=E4=B8=9C?= <763795151@qq.com> Date: Sun, 16 Jun 2024 20:36:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=90=AF=E9=9B=86=E7=BE=A4=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90=EF=BC=8C=E5=90=8C=E4=B8=80=E6=B5=8F?= =?UTF-8?q?=E8=A7=88=E5=99=A8=E4=B8=8D=E5=90=8C=E8=B4=A6=E5=8F=B7=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=9C=8B=E5=88=B0=E5=85=B6=E5=AE=83=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E9=9B=86=E7=BE=A4=E4=BF=A1=E6=81=AFbug=20fixed.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kafka/console/controller/AuthController.java | 5 +++++ .../com/xuxd/kafka/console/service/AuthService.java | 2 ++ .../kafka/console/service/impl/AuthServiceImpl.java | 12 ++++++++++++ ui/src/store/index.js | 4 ++++ ui/src/store/mutation-types.js | 1 + ui/src/utils/api.js | 4 ++++ ui/src/utils/local-cache.js | 4 ++++ ui/src/views/login/Login.vue | 13 ++++++++++++- 8 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/xuxd/kafka/console/controller/AuthController.java b/src/main/java/com/xuxd/kafka/console/controller/AuthController.java index f71e806..1f7c3e0 100644 --- a/src/main/java/com/xuxd/kafka/console/controller/AuthController.java +++ b/src/main/java/com/xuxd/kafka/console/controller/AuthController.java @@ -33,4 +33,9 @@ public class AuthController { public ResponseData login(@RequestBody LoginUserDTO userDTO) { return authService.login(userDTO); } + + @GetMapping("/own/data/auth") + public boolean ownDataAuthority() { + return authService.ownDataAuthority(); + } } diff --git a/src/main/java/com/xuxd/kafka/console/service/AuthService.java b/src/main/java/com/xuxd/kafka/console/service/AuthService.java index c437dc1..51ad85a 100644 --- a/src/main/java/com/xuxd/kafka/console/service/AuthService.java +++ b/src/main/java/com/xuxd/kafka/console/service/AuthService.java @@ -10,4 +10,6 @@ import com.xuxd.kafka.console.beans.dto.LoginUserDTO; public interface AuthService { ResponseData login(LoginUserDTO userDTO); + + boolean ownDataAuthority(); } diff --git a/src/main/java/com/xuxd/kafka/console/service/impl/AuthServiceImpl.java b/src/main/java/com/xuxd/kafka/console/service/impl/AuthServiceImpl.java index 5baafe4..5421130 100644 --- a/src/main/java/com/xuxd/kafka/console/service/impl/AuthServiceImpl.java +++ b/src/main/java/com/xuxd/kafka/console/service/impl/AuthServiceImpl.java @@ -93,4 +93,16 @@ public class AuthServiceImpl implements AuthService { return ResponseData.create().data(loginResult).success(); } + @Override + public boolean ownDataAuthority() { + if (!authConfig.isEnable()) { + return true; + } + if (!authConfig.isEnableClusterAuthority()) { + return true; + } + + return false; + } + } diff --git a/ui/src/store/index.js b/ui/src/store/index.js index 1441759..936010d 100644 --- a/ui/src/store/index.js +++ b/ui/src/store/index.js @@ -6,6 +6,7 @@ import { setPermissions, setToken, setUsername, + deleteClusterInfo, } from "@/utils/local-cache"; Vue.use(Vuex); @@ -38,6 +39,9 @@ export default new Vuex.Store({ state.clusterInfo.enableSasl = enableSasl; setClusterInfo(clusterInfo); }, + [CLUSTER.DELETE]() { + deleteClusterInfo(); + }, [AUTH.ENABLE](state, enable) { state.auth.enable = enable; }, diff --git a/ui/src/store/mutation-types.js b/ui/src/store/mutation-types.js index f219f18..94a33c7 100644 --- a/ui/src/store/mutation-types.js +++ b/ui/src/store/mutation-types.js @@ -1,5 +1,6 @@ export const CLUSTER = { SWITCH: "switchCluster", + DELETE: "deleteClusterInfo", }; export const AUTH = { diff --git a/ui/src/utils/api.js b/ui/src/utils/api.js index 5e73ef4..dc164c8 100644 --- a/ui/src/utils/api.js +++ b/ui/src/utils/api.js @@ -365,6 +365,10 @@ export const AuthApi = { url: "/auth/login", method: "post", }, + ownDataAuthority: { + url: "/auth/own/data/auth", + method: "get", + }, }; export const ClusterRoleRelationApi = { diff --git a/ui/src/utils/local-cache.js b/ui/src/utils/local-cache.js index 80ae0f1..04713d8 100644 --- a/ui/src/utils/local-cache.js +++ b/ui/src/utils/local-cache.js @@ -4,6 +4,10 @@ export function setClusterInfo(clusterInfo) { localStorage.setItem(Cache.clusterInfo, JSON.stringify(clusterInfo)); } +export function deleteClusterInfo() { + localStorage.removeItem(Cache.clusterInfo); +} + export function getClusterInfo() { const str = localStorage.getItem(Cache.clusterInfo); return str ? JSON.parse(str) : undefined; diff --git a/ui/src/views/login/Login.vue b/ui/src/views/login/Login.vue index 7e06f7c..eae5a8f 100644 --- a/ui/src/views/login/Login.vue +++ b/ui/src/views/login/Login.vue @@ -46,7 +46,7 @@ import request from "@/utils/request"; import { AuthApi } from "@/utils/api"; import notification from "ant-design-vue/lib/notification"; import { mapMutations } from "vuex"; -import { AUTH } from "@/store/mutation-types"; +import { AUTH, CLUSTER } from "@/store/mutation-types"; export default { name: "Login", @@ -88,8 +88,19 @@ export default { setToken: AUTH.SET_TOKEN, setUsername: AUTH.SET_USERNAME, setPermissions: AUTH.SET_PERMISSIONS, + deleteClusterInfo: CLUSTER.DELETE, }), }, + created() { + request({ + url: AuthApi.ownDataAuthority.url, + method: AuthApi.ownDataAuthority.method, + }).then((res) => { + if (!res) { + this.deleteClusterInfo(); + } + }); + }, };