zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/AuthController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/param/LoginParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/result/LoginResult.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/UserService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/service/impl/UserServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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) { zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/AuthController.java
New file @@ -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)); } } zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/param/LoginParam.java
New file @@ -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; } zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/result/LoginResult.java
New file @@ -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; } 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); } 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); } }