|
@@ -1,22 +1,16 @@
|
|
package com.simuwang.manage.api;
|
|
package com.simuwang.manage.api;
|
|
|
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
import cn.hutool.core.map.MapUtil;
|
|
-import com.simuwang.base.common.util.ServletUtils;
|
|
|
|
import com.simuwang.base.pojo.dto.sys.UserUpdatePwdCmd;
|
|
import com.simuwang.base.pojo.dto.sys.UserUpdatePwdCmd;
|
|
import com.simuwang.logging.SystemLog;
|
|
import com.simuwang.logging.SystemLog;
|
|
import com.simuwang.manage.dto.LoginUser;
|
|
import com.simuwang.manage.dto.LoginUser;
|
|
import com.simuwang.manage.dto.UserInfoVO;
|
|
import com.simuwang.manage.dto.UserInfoVO;
|
|
import com.simuwang.manage.service.LoginService;
|
|
import com.simuwang.manage.service.LoginService;
|
|
-import com.simuwang.shiro.core.ShiroToken;
|
|
|
|
-import com.simuwang.shiro.core.ShiroUser;
|
|
|
|
import com.simuwang.shiro.core.jwt.JwtContext;
|
|
import com.simuwang.shiro.core.jwt.JwtContext;
|
|
-import com.simuwang.shiro.utils.UserUtils;
|
|
|
|
import com.smppw.common.pojo.ResultVo;
|
|
import com.smppw.common.pojo.ResultVo;
|
|
import com.smppw.common.pojo.enums.status.ResultCode;
|
|
import com.smppw.common.pojo.enums.status.ResultCode;
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
import jakarta.validation.Valid;
|
|
import jakarta.validation.Valid;
|
|
-import org.apache.shiro.SecurityUtils;
|
|
|
|
-import org.apache.shiro.subject.Subject;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -24,15 +18,12 @@ import java.util.Map;
|
|
/**
|
|
/**
|
|
* 登录相关接口
|
|
* 登录相关接口
|
|
*/
|
|
*/
|
|
-@SystemLog(value = "登录")
|
|
|
|
@RestController
|
|
@RestController
|
|
@RequestMapping("/v1")
|
|
@RequestMapping("/v1")
|
|
public class LoginController {
|
|
public class LoginController {
|
|
- private final JwtContext jwtContext;
|
|
|
|
private final LoginService loginService;
|
|
private final LoginService loginService;
|
|
|
|
|
|
- public LoginController(JwtContext jwtContext, LoginService loginService) {
|
|
|
|
- this.jwtContext = jwtContext;
|
|
|
|
|
|
+ public LoginController(LoginService loginService) {
|
|
this.loginService = loginService;
|
|
this.loginService = loginService;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -57,12 +48,7 @@ public class LoginController {
|
|
@SystemLog(value = "登录", type = SystemLog.Type.LOGIN)
|
|
@SystemLog(value = "登录", type = SystemLog.Type.LOGIN)
|
|
@PostMapping("login")
|
|
@PostMapping("login")
|
|
public ResultVo<String> login(@RequestBody LoginUser loginUser, HttpServletResponse response) {
|
|
public ResultVo<String> login(@RequestBody LoginUser loginUser, HttpServletResponse response) {
|
|
- ShiroToken shiroToken = new ShiroToken(loginUser.getUsername(), loginUser.getPassword());
|
|
|
|
- Subject subject = SecurityUtils.getSubject();
|
|
|
|
- subject.login(shiroToken);
|
|
|
|
-
|
|
|
|
- String requestIp = ServletUtils.getIpAddr();
|
|
|
|
- String token = this.jwtContext.generateToken(loginUser.getUsername(), requestIp);
|
|
|
|
|
|
+ String token = this.loginService.login(loginUser);
|
|
response.setHeader(JwtContext.HEADER, token);
|
|
response.setHeader(JwtContext.HEADER, token);
|
|
response.setHeader("Access-control-Expost-Headers", JwtContext.HEADER);
|
|
response.setHeader("Access-control-Expost-Headers", JwtContext.HEADER);
|
|
return ResultVo.ok(ResultCode.SUCCESS.getCode(), "登录成功", token);
|
|
return ResultVo.ok(ResultCode.SUCCESS.getCode(), "登录成功", token);
|
|
@@ -74,12 +60,7 @@ public class LoginController {
|
|
@SystemLog(value = "登出", type = SystemLog.Type.LOGOUT)
|
|
@SystemLog(value = "登出", type = SystemLog.Type.LOGOUT)
|
|
@PostMapping("/logout")
|
|
@PostMapping("/logout")
|
|
public ResultVo<Boolean> logout() {
|
|
public ResultVo<Boolean> logout() {
|
|
- Subject subject = SecurityUtils.getSubject();
|
|
|
|
- ShiroUser shiroUser = UserUtils.getLoginUser();
|
|
|
|
- String requestIp = ServletUtils.getIpAddr();
|
|
|
|
- this.jwtContext.cleanUserCache(shiroUser.getUsername(), requestIp);
|
|
|
|
- subject.logout();
|
|
|
|
- return ResultVo.ok(ResultCode.SUCCESS.getCode(), "退出成功", true);
|
|
|
|
|
|
+ return ResultVo.ok(ResultCode.SUCCESS.getCode(), "退出成功", this.loginService.logout());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -87,6 +68,7 @@ public class LoginController {
|
|
*
|
|
*
|
|
* @return 当前登录用户的角色权限信息
|
|
* @return 当前登录用户的角色权限信息
|
|
*/
|
|
*/
|
|
|
|
+// @SystemLog(value = "获取当前登录用户信息")
|
|
@GetMapping("/user-info")
|
|
@GetMapping("/user-info")
|
|
public UserInfoVO getUserInfo() {
|
|
public UserInfoVO getUserInfo() {
|
|
return this.loginService.getUserInfo();
|
|
return this.loginService.getUserInfo();
|