This is an automated email from the ASF dual-hosted git repository.

benjobs pushed a commit to branch dev-2.1.5
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev-2.1.5 by this push:
     new 351f599ec [Improve] token status improvement
351f599ec is described below

commit 351f599ecfc4607dfb0f19ed98b4b13410ca4fc8
Author: benjobs <[email protected]>
AuthorDate: Sat Jul 27 00:38:16 2024 +0800

    [Improve] token status improvement
---
 .../console/core/controller/OpenAPIController.java |  3 ++-
 .../console/core/enums/AccessTokenState.java       |  9 ++++++---
 .../console/system/authentication/ShiroRealm.java  | 11 +++++++++--
 .../system/controller/AccessTokenController.java   | 19 ++++++++-----------
 .../console/system/entity/AccessToken.java         |  3 ---
 .../console/system/service/AccessTokenService.java |  2 --
 .../service/impl/AccessTokenServiceImpl.java       |  6 ------
 .../streampark-console-webapp/src/api/index.ts     |  9 ++++-----
 .../src/api/system/token.ts                        |  9 ---------
 .../src/locales/lang/en/flink/app.ts               |  3 ++-
 .../src/locales/lang/zh-CN/flink/app.ts            |  5 +++--
 .../src/views/flink/app/Detail.vue                 | 22 ++--------------------
 .../flink/app/components/RequestModal/index.tsx    | 18 +++++++++++-------
 .../src/views/system/token/token.data.ts           |  7 +++----
 14 files changed, 50 insertions(+), 76 deletions(-)

diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/OpenAPIController.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/OpenAPIController.java
index 613d8c379..6cf591dcd 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/OpenAPIController.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/OpenAPIController.java
@@ -34,6 +34,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 @Validated
 @RestController
@@ -142,7 +143,7 @@ public class OpenAPIController {
   public RestResponse copyOpenApiCurl(
       String baseUrl,
       Long appId,
-      @NotBlank(message = "{required}") Long teamId,
+      @NotNull(message = "{required}") Long teamId,
       @NotBlank(message = "{required}") String name) {
     String url = openAPIComponent.getOpenApiCUrl(baseUrl, appId, teamId, name);
     return RestResponse.success(url);
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/AccessTokenState.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/AccessTokenState.java
index 21fb347d7..b03c6e917 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/AccessTokenState.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/AccessTokenState.java
@@ -25,10 +25,13 @@ public enum AccessTokenState implements Serializable {
   NULL(0),
 
   /** invalid token */
-  INVALID(1),
+  INVALID_TOKEN(1),
 
-  /** effect token */
-  OK(2);
+  /** locked user */
+  LOCKED_USER(2),
+
+  /** ok */
+  OK(3);
 
   private final int value;
 
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/authentication/ShiroRealm.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/authentication/ShiroRealm.java
index a654d9b39..d4bdaae3e 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/authentication/ShiroRealm.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/authentication/ShiroRealm.java
@@ -101,10 +101,17 @@ public class ShiroRealm extends AuthorizingRealm {
           || 
!accessToken.getToken().equals(WebUtils.encryptToken(credential))) {
         throw new AuthenticationException("the openapi authorization token is 
invalid");
       }
-      if (AccessToken.STATUS_DISABLE.equals(accessToken.getFinalStatus())) {
+
+      if (AccessToken.STATUS_DISABLE.equals(accessToken.getStatus())) {
         throw new AuthenticationException(
-            "the openapi authorization token has been disabled, please contact 
the administrator");
+            "the openapi authorization token is disabled, please contact the 
administrator");
       }
+
+      if (User.STATUS_LOCK.equals(accessToken.getUserStatus())) {
+        throw new AuthenticationException(
+            "the user [" + username + "] has been locked, please contact the 
administrator");
+      }
+
       
SecurityUtils.getSubject().getSession().setAttribute(AccessToken.IS_API_TOKEN, 
true);
     }
 
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/AccessTokenController.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/AccessTokenController.java
index 07830c502..331289e24 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/AccessTokenController.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/AccessTokenController.java
@@ -25,6 +25,7 @@ import 
org.apache.streampark.console.core.annotation.PermissionScope;
 import org.apache.streampark.console.core.enums.AccessTokenState;
 import org.apache.streampark.console.core.service.ServiceHelper;
 import org.apache.streampark.console.system.entity.AccessToken;
+import org.apache.streampark.console.system.entity.User;
 import org.apache.streampark.console.system.service.AccessTokenService;
 
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -62,17 +63,13 @@ public class AccessTokenController {
   public RestResponse verifyToken() {
     Long userId = serviceHelper.getUserId();
     RestResponse restResponse = RestResponse.success();
-    if (userId != null) {
-      AccessToken accessToken = accessTokenService.getByUserId(userId);
-      if (accessToken == null) {
-        restResponse.data(AccessTokenState.NULL.get());
-      } else if 
(AccessToken.STATUS_DISABLE.equals(accessToken.getFinalStatus())) {
-        restResponse.data(AccessTokenState.INVALID.get());
-      } else {
-        restResponse.data(AccessTokenState.OK.get());
-      }
-    } else {
-      restResponse.data(AccessTokenState.INVALID.get());
+    AccessToken accessToken = accessTokenService.getByUserId(userId);
+    if (accessToken == null) {
+      restResponse.data(AccessTokenState.NULL.get());
+    } else if (AccessToken.STATUS_DISABLE.equals(accessToken.getStatus())) {
+      restResponse.data(AccessTokenState.INVALID_TOKEN.get());
+    } else if (User.STATUS_LOCK.equals(accessToken.getUserStatus())) {
+      restResponse.data(AccessTokenState.LOCKED_USER.get());
     }
     return restResponse;
   }
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/entity/AccessToken.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/entity/AccessToken.java
index 711394fec..2db73775e 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/entity/AccessToken.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/entity/AccessToken.java
@@ -63,9 +63,6 @@ public class AccessToken implements Serializable {
 
   private transient String userStatus;
 
-  /** token final status, 1: available, 0: unavailable */
-  private transient Integer finalStatus;
-
   public AccessToken setStatus(Integer status) {
     this.status = status;
     return this;
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/AccessTokenService.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/AccessTokenService.java
index f076c8f29..6bd7ed988 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/AccessTokenService.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/AccessTokenService.java
@@ -33,8 +33,6 @@ public interface AccessTokenService extends 
IService<AccessToken> {
 
   IPage<AccessToken> page(AccessToken tokenParam, RestRequest request);
 
-  boolean checkTokenEffective(Long userId, String token);
-
   RestResponse toggleToken(Long tokenId);
 
   AccessToken getByUserId(Long userId);
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/AccessTokenServiceImpl.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/AccessTokenServiceImpl.java
index 7b33def30..a682881ef 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/AccessTokenServiceImpl.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/AccessTokenServiceImpl.java
@@ -91,12 +91,6 @@ public class AccessTokenServiceImpl extends 
ServiceImpl<AccessTokenMapper, Acces
     return page;
   }
 
-  @Override
-  public boolean checkTokenEffective(Long userId, String token) {
-    AccessToken res = baseMapper.getByUserToken(userId, token);
-    return res != null && 
AccessToken.STATUS_ENABLE.equals(res.getFinalStatus());
-  }
-
   @Override
   public RestResponse toggleToken(Long tokenId) {
     AccessToken tokenInfo = baseMapper.getById(tokenId);
diff --git a/streampark-console/streampark-console-webapp/src/api/index.ts 
b/streampark-console/streampark-console-webapp/src/api/index.ts
index ec297e6d0..be0e995b0 100644
--- a/streampark-console/streampark-console-webapp/src/api/index.ts
+++ b/streampark-console/streampark-console-webapp/src/api/index.ts
@@ -14,12 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+import * as process from 'node:process';
+
 export function baseUrl() {
-  if (import.meta.env.VITE_APP_ENV) {
+  if (process.env.NODE_ENV === 'production') {
     return `${location.protocol}//${location.host}`;
   }
-
-  const baseApi = import.meta.env.VITE_GLOB_API_URL;
-
-  return baseApi ? baseApi : '';
+  return '';
 }
diff --git 
a/streampark-console/streampark-console-webapp/src/api/system/token.ts 
b/streampark-console/streampark-console-webapp/src/api/system/token.ts
index a94fc9655..6478191e5 100644
--- a/streampark-console/streampark-console-webapp/src/api/system/token.ts
+++ b/streampark-console/streampark-console-webapp/src/api/system/token.ts
@@ -24,7 +24,6 @@ enum Api {
   AddToken = '/token/create',
   DeleteToken = '/token/delete',
   CHECK = 'token/check',
-  CURL = '/token/curl',
 }
 /**
  * get token list
@@ -69,11 +68,3 @@ export function fetchTokenDelete(data?: { tokenId: string }) 
{
 export function fetchCheckToken(data) {
   return defHttp.post<number>({ url: Api.CHECK, data });
 }
-/**
- * copyCurl
- * @param data
- * @returns {Promise<string>}
- */
-export function fetchCopyCurl(data): Promise<string> {
-  return defHttp.post<string>({ url: Api.CURL, data });
-}
diff --git 
a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/app.ts 
b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/app.ts
index 070f8be4b..a27980aa5 100644
--- 
a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/app.ts
+++ 
b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/app.ts
@@ -125,7 +125,8 @@ export default {
     copyCancelcURL: 'App Cancel',
     apiDocCenter: 'Api Doc Center',
     nullAccessToken: 'access token is null,please contact the administrator to 
add.',
-    invalidAccessToken: 'access token is invalid,please contact the 
administrator.',
+    invalidAccessToken: 'access token is invalid, please contact the 
administrator.',
+    invalidTokenUser: 'current user is locked, please contact the 
administrator ',
     detailTab: {
       detailTabName: {
         option: 'Option',
diff --git 
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/app.ts
 
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/app.ts
index 5f59c6636..add603d16 100644
--- 
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/app.ts
+++ 
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/app.ts
@@ -114,8 +114,9 @@ export default {
     copyStartcURL: '作业启动',
     copyCancelcURL: '作业停止',
     apiDocCenter: 'Api文档',
-    nullAccessToken: '访问令牌为空,请联系管理员添加.',
-    invalidAccessToken: '访问令牌无效,请联系管理员。',
+    nullAccessToken: '访问令牌为空,请联系管理员添加',
+    invalidAccessToken: '访问令牌无效,请联系管理员',
+    invalidTokenUser: '当前用户已被锁定,请联系管理员',
     detailTab: {
       detailTabName: {
         option: '选项',
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/Detail.vue 
b/streampark-console/streampark-console-webapp/src/views/flink/app/Detail.vue
index 376557698..421ad026a 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/Detail.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/Detail.vue
@@ -102,24 +102,6 @@
             },
             () => [t('flink.app.detail.copyCancelcURL')],
           ),
-          h(
-            Button,
-            {
-              type: 'link',
-              shape: 'round',
-              class: 'mx-3px px-5px',
-              onClick: () => {
-                openApiModal(true, {
-                  name: 'flinkCancel',
-                  app,
-                });
-              },
-            },
-            () => [
-              h(Icon, { icon: 'ant-design:link-outlined' }),
-              t('flink.app.detail.apiDocCenter'),
-            ],
-          ),
         ],
       },
     ],
@@ -158,9 +140,9 @@
           ExecModeEnum.YARN_APPLICATION,
         ].includes(res.executionMode)
       ) {
-        handleYarn();
+        await handleYarn();
       }
-      handleDetailTabs();
+      await handleDetailTabs();
     }
     Object.assign(app, res);
   }
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/components/RequestModal/index.tsx
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/components/RequestModal/index.tsx
index a065b773f..2252d49fe 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/components/RequestModal/index.tsx
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/components/RequestModal/index.tsx
@@ -30,7 +30,7 @@ export default defineComponent({
   emits: ['register'],
   setup() {
     const currentRef = ref<Recordable>({});
-    const [registerModal, { closeModal, changeOkLoading }] = 
useModalInner(async (data) => {
+    const [registerModal, { changeOkLoading }] = useModalInner(async (data) => 
{
       currentRef.value = data;
     });
     const { Swal, createMessage } = useMessage();
@@ -48,14 +48,18 @@ export default defineComponent({
             icon: 'error',
             title: t('flink.app.detail.nullAccessToken'),
             showConfirmButton: true,
-            timer: 3500,
           });
         } else if (result === 1) {
           Swal.fire({
             icon: 'error',
             title: t('flink.app.detail.invalidAccessToken'),
             showConfirmButton: true,
-            timer: 3500,
+          });
+        } else if (result === 2) {
+          Swal.fire({
+            icon: 'error',
+            title: t('flink.app.detail.invalidTokenUser'),
+            showConfirmButton: true,
           });
         } else {
           const res = await fetchCopyCurl({
@@ -63,9 +67,8 @@ export default defineComponent({
             appId: currentRef.value.app.id,
             name: currentRef.value.name,
           });
-          copy(res);
+          await copy(res);
           createMessage.success(t('flink.app.detail.detailTab.copySuccess'));
-          closeModal();
         }
       } catch (error) {
         console.log(error);
@@ -76,9 +79,10 @@ export default defineComponent({
     return () => (
       <>
         <BasicModal
-          width={900}
+          width={800}
           onRegister={registerModal}
-          minHeight={400}
+          minHeight={500}
+          showCancelBtn={false}
           okText={t('flink.app.detail.copyCurl')}
           onOk={handleCopyCurl}
           v-slots={{
diff --git 
a/streampark-console/streampark-console-webapp/src/views/system/token/token.data.ts
 
b/streampark-console/streampark-console-webapp/src/views/system/token/token.data.ts
index 1d1918e00..a7f9d26b3 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/system/token/token.data.ts
+++ 
b/streampark-console/streampark-console-webapp/src/views/system/token/token.data.ts
@@ -52,14 +52,14 @@ export const columns: BasicColumn[] = [
   },
   {
     title: t('system.token.table.status'),
-    dataIndex: 'userStatus',
+    dataIndex: 'finalStatus',
     width: 100,
     customRender: ({ record }) => {
       if (!Reflect.has(record, 'pendingStatus')) {
         record.pendingStatus = false;
       }
       return h(Switch, {
-        checked: record.userStatus === StatusEnum.On,
+        checked: record.status == StatusEnum.On,
         checkedChildren: 'on',
         unCheckedChildren: 'off',
         loading: record.pendingStatus,
@@ -67,10 +67,9 @@ export const columns: BasicColumn[] = [
           record.pendingStatus = true;
           const newStatus = checked ? StatusEnum.On : StatusEnum.Off;
           const { createMessage } = useMessage();
-
           fetTokenStatusToggle({ tokenId: record.id })
             .then(() => {
-              record.userStatus = newStatus;
+              record.status = newStatus;
               createMessage.success(`success`);
             })
             .finally(() => {

Reply via email to