|
@@ -13,6 +13,7 @@ import com.simuwang.shiro.core.jwt.JwtContext;
|
|
import com.simuwang.shiro.utils.UserUtils;
|
|
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.validation.Valid;
|
|
import jakarta.validation.Valid;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.apache.shiro.subject.Subject;
|
|
import org.apache.shiro.subject.Subject;
|
|
@@ -55,16 +56,15 @@ 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) {
|
|
|
|
|
|
+ public ResultVo<String> login(@RequestBody LoginUser loginUser, HttpServletResponse response) {
|
|
ShiroToken shiroToken = new ShiroToken(loginUser.getUsername(), loginUser.getPassword());
|
|
ShiroToken shiroToken = new ShiroToken(loginUser.getUsername(), loginUser.getPassword());
|
|
Subject subject = SecurityUtils.getSubject();
|
|
Subject subject = SecurityUtils.getSubject();
|
|
subject.login(shiroToken);
|
|
subject.login(shiroToken);
|
|
|
|
|
|
String requestIp = ServletUtils.getIpAddr();
|
|
String requestIp = ServletUtils.getIpAddr();
|
|
String token = this.jwtContext.generateToken(loginUser.getUsername(), requestIp);
|
|
String token = this.jwtContext.generateToken(loginUser.getUsername(), requestIp);
|
|
- // 加这response会导致响应头和shiro的默认字符集存在冲突,导致接口500
|
|
|
|
-// response.setHeader(JwtContext.HEADER, token);
|
|
|
|
-// response.setHeader("Access-control-Expost-Headers", JwtContext.HEADER);
|
|
|
|
|
|
+ response.setHeader(JwtContext.HEADER, token);
|
|
|
|
+ response.setHeader("Access-control-Expost-Headers", JwtContext.HEADER);
|
|
return ResultVo.ok(ResultCode.SUCCESS.getCode(), "登录成功", token);
|
|
return ResultVo.ok(ResultCode.SUCCESS.getCode(), "登录成功", token);
|
|
}
|
|
}
|
|
|
|
|