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