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

dijiekstra pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel-web.git


The following commit(s) were added to refs/heads/main by this push:
     new 96ace88c [Fix][API] Fix that the response body does not return the 
token attribute after successful login (#21)
96ace88c is described below

commit 96ace88c3cc189cc8412c932036c3334c561ea0f
Author: Kerwin <[email protected]>
AuthorDate: Mon Feb 20 19:20:49 2023 +0800

    [Fix][API] Fix that the response body does not return the token attribute 
after successful login (#21)
    
    * Fix that the response body does not return the token attribute after 
successful login
    
    * fix code style
    
    * Add application ports
---
 .../apache/seatunnel/app/aspect/LoginAspect.java   | 75 ----------------------
 .../seatunnel/app/controller/AuthController.java   |  4 +-
 .../seatunnel/app/controller/ScriptController.java |  2 +-
 .../app/domain/response/user/BaseUserInfoRes.java  |  2 +
 .../app/service/impl/UserServiceImpl.java          | 20 +++++-
 .../src/main/resources/application.yml             |  3 +
 seatunnel-ui/.env.development                      |  2 +-
 seatunnel-ui/.gitignore                            |  1 +
 8 files changed, 29 insertions(+), 80 deletions(-)

diff --git 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/aspect/LoginAspect.java
 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/aspect/LoginAspect.java
deleted file mode 100644
index 1bba7f74..00000000
--- 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/aspect/LoginAspect.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.app.aspect;
-
-import static org.apache.seatunnel.server.common.Constants.TOKEN;
-
-import org.apache.seatunnel.app.common.Result;
-import org.apache.seatunnel.app.common.UserTokenStatusEnum;
-import org.apache.seatunnel.app.dal.dao.IUserDao;
-import org.apache.seatunnel.app.domain.dto.user.UserLoginLogDto;
-import org.apache.seatunnel.app.domain.response.user.UserSimpleInfoRes;
-import org.apache.seatunnel.app.security.JwtUtils;
-
-import lombok.extern.slf4j.Slf4j;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.annotation.AfterReturning;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Component;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-
-@Slf4j
-@Aspect
-@Component
-@Order(2)
-public class LoginAspect {
-    @Resource
-    private JwtUtils jwtUtils;
-
-    @Resource
-    private IUserDao userDaoImpl;
-
-    @Pointcut("execution(public * 
org.apache.seatunnel.app.controller.UserController.login(..))")
-    public void loginPointCut() {
-
-    }
-
-    @AfterReturning(value = "loginPointCut()", returning = "obj")
-    public void check(JoinPoint pjp, Object obj) {
-        final Result<UserSimpleInfoRes> target = (Result<UserSimpleInfoRes>) 
obj;
-        final UserSimpleInfoRes data = target.getData();
-
-        ServletRequestAttributes attributes = (ServletRequestAttributes) 
RequestContextHolder.getRequestAttributes();
-        final HttpServletResponse response = attributes.getResponse();
-        final String token = jwtUtils.genToken(data.toMap());
-        response.setHeader(TOKEN, token);
-
-        final UserLoginLogDto logDto = UserLoginLogDto.builder()
-                .token(token)
-                .tokenStatus(UserTokenStatusEnum.ENABLE.enable())
-                .userId(data.getId())
-                .build();
-        userDaoImpl.insertLoginLog(logDto);
-    }
-}
diff --git 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/AuthController.java
 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/AuthController.java
index 3f720be8..fa83416f 100644
--- 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/AuthController.java
+++ 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/AuthController.java
@@ -41,8 +41,8 @@ public class AuthController {
     @GetMapping("/userRole")
     @ApiOperation(value = "check relation between user and role", httpMethod = 
"GET")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "username", value = "user name", dataType 
= "String"),
-            @ApiImplicitParam(name = "roleName", value = "role name", dataType 
= "String"),
+        @ApiImplicitParam(name = "username", value = "user name", dataType = 
"String"),
+        @ApiImplicitParam(name = "roleName", value = "role name", dataType = 
"String"),
     })
     public Result<Boolean> userRole(@RequestParam("username") @NotNull String 
username, @RequestParam("roleName") @NotNull String roleName){
         final boolean b = roleServiceImpl.checkUserRole(username, roleName);
diff --git 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/ScriptController.java
 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/ScriptController.java
index f983cbdb..62367953 100644
--- 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/ScriptController.java
+++ 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/ScriptController.java
@@ -120,7 +120,7 @@ public class ScriptController {
     @GetMapping("/{scriptId}/param")
     @ApiOperation(value = "fetch script param", httpMethod = "GET")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "script id", dataType = 
"Integer"),
+        @ApiImplicitParam(name = "id", value = "script id", dataType = 
"Integer"),
     })
     public Result<List<ScriptParamRes>> fetchScriptParam(@ApiParam(value = 
"script id", required = true) @PathVariable(value = "scriptId") Integer 
scriptId) {
         return Result.success(iScriptService.fetchScriptParam(scriptId));
diff --git 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/domain/response/user/BaseUserInfoRes.java
 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/domain/response/user/BaseUserInfoRes.java
index a50a2cea..f59ddae0 100644
--- 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/domain/response/user/BaseUserInfoRes.java
+++ 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/domain/response/user/BaseUserInfoRes.java
@@ -28,6 +28,8 @@ public class BaseUserInfoRes {
     private int id;
     @ApiModelProperty(value = "user name", dataType = "String")
     private String name;
+    @ApiModelProperty(value = "user token", dataType = "String")
+    private String token;
     @ApiModelProperty(value = "user status", dataType = "type")
     private byte status;
     @ApiModelProperty(value = "user type", dataType = "type")
diff --git 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/UserServiceImpl.java
 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/UserServiceImpl.java
index aa63f60c..636eb0fc 100644
--- 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/UserServiceImpl.java
+++ 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/UserServiceImpl.java
@@ -19,10 +19,12 @@ package org.apache.seatunnel.app.service.impl;
 
 import static 
org.apache.seatunnel.server.common.SeatunnelErrorEnum.USERNAME_PASSWORD_NO_MATCHED;
 
+import org.apache.seatunnel.app.common.UserTokenStatusEnum;
 import org.apache.seatunnel.app.dal.dao.IUserDao;
 import org.apache.seatunnel.app.dal.entity.User;
 import org.apache.seatunnel.app.domain.dto.user.ListUserDto;
 import org.apache.seatunnel.app.domain.dto.user.UpdateUserDto;
+import org.apache.seatunnel.app.domain.dto.user.UserLoginLogDto;
 import org.apache.seatunnel.app.domain.request.user.AddUserReq;
 import org.apache.seatunnel.app.domain.request.user.UpdateUserReq;
 import org.apache.seatunnel.app.domain.request.user.UserListReq;
@@ -30,6 +32,7 @@ import 
org.apache.seatunnel.app.domain.request.user.UserLoginReq;
 import org.apache.seatunnel.app.domain.response.PageInfo;
 import org.apache.seatunnel.app.domain.response.user.AddUserRes;
 import org.apache.seatunnel.app.domain.response.user.UserSimpleInfoRes;
+import org.apache.seatunnel.app.security.JwtUtils;
 import org.apache.seatunnel.app.service.IRoleService;
 import org.apache.seatunnel.app.service.IUserService;
 import org.apache.seatunnel.app.utils.PasswordUtils;
@@ -54,6 +57,9 @@ public class UserServiceImpl implements IUserService {
     @Resource
     private IRoleService roleServiceImpl;
 
+    @Resource
+    private JwtUtils jwtUtils;
+
     @Value("${user.default.passwordSalt:seatunnel}")
     private String defaultSalt;
 
@@ -142,7 +148,19 @@ public class UserServiceImpl implements IUserService {
         if (Objects.isNull(user)) {
             throw new SeatunnelException(USERNAME_PASSWORD_NO_MATCHED);
         }
-        return translate(user);
+
+        UserSimpleInfoRes translate = translate(user);
+        final String token = jwtUtils.genToken(translate.toMap());
+        translate.setToken(token);
+
+        final UserLoginLogDto logDto = UserLoginLogDto.builder()
+                .token(token)
+                .tokenStatus(UserTokenStatusEnum.ENABLE.enable())
+                .userId(user.getId())
+                .build();
+        userDaoImpl.insertLoginLog(logDto);
+
+        return translate;
     }
 
     private UserSimpleInfoRes translate(User user) {
diff --git a/seatunnel-server/seatunnel-app/src/main/resources/application.yml 
b/seatunnel-server/seatunnel-app/src/main/resources/application.yml
index 414b36d1..77e35480 100644
--- a/seatunnel-server/seatunnel-app/src/main/resources/application.yml
+++ b/seatunnel-server/seatunnel-app/src/main/resources/application.yml
@@ -15,6 +15,9 @@
 # limitations under the License.
 #
 
+server:
+  port: 8801
+
 spring:
   application:
     name: seatunnel
diff --git a/seatunnel-ui/.env.development b/seatunnel-ui/.env.development
index c73a1a75..0e5ee882 100644
--- a/seatunnel-ui/.env.development
+++ b/seatunnel-ui/.env.development
@@ -15,4 +15,4 @@
 
 NODE_ENV=development
 
-VITE_APP_DEV_WEB_URL=''
+VITE_APP_DEV_WEB_URL='http://127.0.0.1:8801'
diff --git a/seatunnel-ui/.gitignore b/seatunnel-ui/.gitignore
index 87ae7322..d43dfedb 100644
--- a/seatunnel-ui/.gitignore
+++ b/seatunnel-ui/.gitignore
@@ -25,5 +25,6 @@
 node_modules
 dist
 dist-ssr
+package-lock.json
 
 .pnpm-debug.log

Reply via email to