From 9ced74ed4c953ced2d87e80cb8c30a89f75c1a55 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 30 一月 2024 14:16:29 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/result/LoginResult.java | 24 ++++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java | 3
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/param/LoginParam.java | 21 +++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/AuthController.java | 59 +++++++++++++++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/impl/UserServiceImpl.java | 12 ++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/UserService.java | 4 +
6 files changed, 121 insertions(+), 2 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java
index df659e0..8409a3b 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java
@@ -93,8 +93,7 @@
String token = JwtUtil.buildToken(jwtSubject, configProperties.getTokenExpireTime(),
configProperties.getTokenKey());
response.addHeader(Constants.TOKEN_HEADER_NAME, token);
- userLoginService.saveAsync(user.getId(), UserLogin.TYPE_REFRESH, null,
- user.getHostId(), request);
+ userLoginService.saveAsync(user.getId(), UserLogin.TYPE_REFRESH, null, user.getHostId(), request);
}
}
} catch (ExpiredJwtException e) {
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/AuthController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/AuthController.java
new file mode 100644
index 0000000..cac933e
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/AuthController.java
@@ -0,0 +1,59 @@
+package com.zy.asrs.wcs.sys.controller;
+
+import com.zy.asrs.common.web.BaseController;
+import com.zy.asrs.framework.common.R;
+import com.zy.asrs.wcs.common.config.ConfigProperties;
+import com.zy.asrs.wcs.common.security.JwtSubject;
+import com.zy.asrs.wcs.sys.controller.param.LoginParam;
+import com.zy.asrs.wcs.sys.controller.result.LoginResult;
+import com.zy.asrs.wcs.sys.entity.User;
+import com.zy.asrs.wcs.sys.entity.UserLogin;
+import com.zy.asrs.wcs.sys.service.UserLoginService;
+import com.zy.asrs.wcs.sys.service.UserService;
+import com.zy.asrs.wcs.utils.JwtUtil;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 璁よ瘉鎺у埗鍣�
+ *
+ * Created by vincent on 1/30/2024
+ */
+@RestController
+@RequestMapping("/api")
+public class AuthController extends BaseController {
+
+ @Resource
+ private ConfigProperties configProperties;
+ @Resource
+ private UserService userService;
+ @Resource
+ private UserLoginService userLoginService;
+
+ @PostMapping("/login")
+ public R login(@RequestBody LoginParam param, HttpServletRequest request) {
+ String username = param.getUsername();
+ Long hostId = param.getHostId();
+ User user = userService.getByUsername(username, hostId);
+ if (user == null) {
+ return R.error("璐﹀彿涓嶅瓨鍦�");
+ }
+ if (!user.getStatus().equals(1)) {
+ return R.error("璐﹀彿琚喕缁�");
+ }
+ if (!userService.comparePassword(user.getPassword(), param.getPassword())) {
+ return R.error("瀵嗙爜閿欒");
+ }
+ userLoginService.saveAsync(user.getId(), UserLogin.TYPE_LOGIN, null, hostId, request);
+ String accessToken = JwtUtil.buildToken(new JwtSubject(username, hostId),
+ configProperties.getTokenExpireTime(), configProperties.getTokenKey());
+ return R.ok("鐧诲綍鎴愬姛").add(new LoginResult(accessToken, user));
+ }
+
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/param/LoginParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/param/LoginParam.java
new file mode 100644
index 0000000..8384a69
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/param/LoginParam.java
@@ -0,0 +1,21 @@
+package com.zy.asrs.wcs.sys.controller.param;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Created by vincent on 1/30/2024
+ */
+@Data
+public class LoginParam implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String username;
+
+ private String password;
+
+ private Long hostId;
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/result/LoginResult.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/result/LoginResult.java
new file mode 100644
index 0000000..9a9b5f0
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/result/LoginResult.java
@@ -0,0 +1,24 @@
+package com.zy.asrs.wcs.sys.controller.result;
+
+import com.zy.asrs.wcs.sys.entity.User;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * Created by vincent on 1/30/2024
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class LoginResult implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String accessToken;
+
+ private User user;
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/UserService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/UserService.java
index a2c0c52..b4b2a55 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/UserService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/UserService.java
@@ -7,4 +7,8 @@
User getByUsername(String username, Long hostId);
+ boolean comparePassword(String dbPassword, String inputPassword);
+
+ String encodePassword(String password);
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/impl/UserServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/impl/UserServiceImpl.java
index e1f9937..af82439 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/impl/UserServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/impl/UserServiceImpl.java
@@ -7,6 +7,7 @@
import com.zy.asrs.wcs.sys.service.RoleMenuService;
import com.zy.asrs.wcs.sys.service.UserRoleService;
import com.zy.asrs.wcs.sys.service.UserService;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -18,6 +19,8 @@
private UserRoleService userRoleService;
@Resource
private RoleMenuService roleMenuService;
+ @Resource
+ private BCryptPasswordEncoder bCryptPasswordEncoder;
@Override
public User getByUsername(String username, Long hostId) {
@@ -32,5 +35,14 @@
return user;
}
+ @Override
+ public boolean comparePassword(String dbPassword, String inputPassword) {
+ return bCryptPasswordEncoder.matches(inputPassword, dbPassword);
+ }
+
+ @Override
+ public String encodePassword(String password) {
+ return password == null ? null : bCryptPasswordEncoder.encode(password);
+ }
}
--
Gitblit v1.9.1