liuxm
2024-06-13 f823fa4a9283debfa7cb6d79fc1f3c7099f9b3ae
pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
@@ -14,15 +14,12 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Objects;
import java.util.Random;
import java.util.UUID;
/**
@@ -49,31 +46,20 @@
    /**
     * 客户端请求用户登录,客户端提交Json数据
     * @param vo 用户登录值对象
     * @param bindingResult 输入验证
     * @return 登录用户值对象
     */
    @PostMapping(path = "login", consumes = MediaType.APPLICATION_JSON_VALUE)//前端提交json数据
    @Log("用户登录")
    public BaseResponse<UserVo> login(@RequestBody  @Valid LoginVo vo,BindingResult bindingResult,
                                      HttpSession session) {
        try {
            if(bindingResult != null && bindingResult.hasErrors()){
                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
            }
            // 从Session中获取保存的验证码
            String sessionCaptcha = (String) session.getAttribute("captcha");
            // 首先验证验证码
            if (vo.captcha != null && vo.captcha.equalsIgnoreCase(sessionCaptcha)) {
                session.removeAttribute("captcha");
                return this.doLogin(vo) ;
            } else {
                // 验证码错误,返回登录页面并显示错误信息
                return BaseResponseUtils.buildFail("验证码错误");
            }
        } catch (Exception e) {
            log.error("用户登录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
    public BaseResponse<UserVo> login(@RequestBody  @Valid LoginVo vo,HttpSession session) {
        // 从Session中获取保存的验证码
        String sessionCaptcha = (String) session.getAttribute("captcha");
        // 首先验证验证码
        if (vo.captcha != null && vo.captcha.equalsIgnoreCase(sessionCaptcha)) {
            session.removeAttribute("captcha");
            return this.doLogin(vo) ;
        } else {
            // 验证码错误,返回登录页面并显示错误信息
            return BaseResponseUtils.buildFail("验证码错误");
        }
    }
@@ -83,24 +69,16 @@
     * @return 登录用户值对象
     */
    @PostMapping(path = "loginForm", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)//前端提交form表单数据
    public BaseResponse<UserVo> loginForm(@Valid LoginVo loginVo, BindingResult bindingResult,HttpSession session){
        try{
            if(bindingResult != null && bindingResult.hasErrors()){
                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
            }
            // 从Session中获取保存的验证码
            String sessionCaptcha = (String) session.getAttribute("captcha");
            // 首先验证验证码
            if (loginVo.captcha != null && loginVo.captcha.equalsIgnoreCase(sessionCaptcha)) {
                session.removeAttribute("captcha");
                return this.doLogin(loginVo) ;
            } else {
                // 验证码错误,返回登录页面并显示错误信息
                return BaseResponseUtils.buildFail("验证码错误");
            }
        } catch (Exception e) {
            log.error("用户登录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
    public BaseResponse<UserVo> loginForm(@Valid LoginVo loginVo,HttpSession session){
        // 从Session中获取保存的验证码
        String sessionCaptcha = (String) session.getAttribute("captcha");
        // 首先验证验证码
        if (loginVo.captcha != null && loginVo.captcha.equalsIgnoreCase(sessionCaptcha)) {
            session.removeAttribute("captcha");
            return this.doLogin(loginVo) ;
        } else {
            // 验证码错误,返回登录页面并显示错误信息
            return BaseResponseUtils.buildFail("验证码错误");
        }
    }
@@ -113,17 +91,12 @@
    @GetMapping(path = "logout")
    @Log("退出登录")
    public BaseResponse<Boolean> logout(HttpServletRequest hr){
        try{
            String token = hr.getHeader("token") ;
            if(token != null){
                this.sv.logout(token) ;
                return BaseResponseUtils.buildSuccess(true);
            }else{
                return BaseResponseUtils.buildFail("未从header中得到token");
            }
        } catch (Exception e) {
            log.error("查询一个用户数据异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        String token = hr.getHeader("token") ;
        if(token != null){
            this.sv.logout(token) ;
            return BaseResponseUtils.buildSuccess(true);
        }else{
            return BaseResponseUtils.buildFail("未从header中得到token");
        }
    }