From 636c7bbbd8b4d503b9f0e84fe80ceb8868c5c2bc Mon Sep 17 00:00:00 2001 From: whycxzp <perryhsu@163.com> Date: 星期五, 15 七月 2022 16:16:40 +0800 Subject: [PATCH] 用户登录 --- src/main/java/com/whyc/service/DocUserService.java | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/whyc/service/DocUserService.java b/src/main/java/com/whyc/service/DocUserService.java index 1b710bf..bfa39c1 100644 --- a/src/main/java/com/whyc/service/DocUserService.java +++ b/src/main/java/com/whyc/service/DocUserService.java @@ -9,11 +9,18 @@ import com.whyc.dto.Response; import com.whyc.mapper.DocUserMapper; import com.whyc.pojo.DocUser; +import com.whyc.util.ActionUtil; +import com.whyc.util.RSAUtil; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.UnknownAccountException; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.system.ApplicationHome; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.util.List; @@ -94,4 +101,29 @@ int bl=mapper.delete(wrapper); return new Response().setII(1,bl>0?true:false,bl,"鍒犻櫎杩斿洖"); } + + public Response login(String name, String snId, HttpServletRequest request) { + Response response = new Response(); + String[] dataArr = RSAUtil.decryptFrontP(snId, RSAUtil.fontSeparator); + //楠岀md5 + if (!dataArr[1].equals(ActionUtil.EncryptionMD5(org.apache.commons.lang3.StringUtils.trim(dataArr[0])).toString())) { + return response.set(1, false, "瀵嗙爜楠岀澶辫触"); + } + UsernamePasswordToken userToken = new UsernamePasswordToken(name, dataArr[0]); + Subject subject = SecurityUtils.getSubject(); + try { + subject.login(userToken); + } catch (Exception e) { + if(e instanceof UnknownAccountException){ + return response.set(1,false,"璐﹀彿涓嶅瓨鍦�"); + } + return response.set(1,false,"瀵嗙爜閿欒"); + } + //鐧诲綍鎴愬姛 + //Session瀛樺偍褰撳墠鐢ㄦ埛鍙婃潈闄愮粍鍒楄〃 + DocUser userDB = (DocUser) subject.getPrincipal(); + userDB.setSnId(null); + request.getSession().setAttribute("user", userDB); + return response.setII(1,true, userDB,"鐧诲綍鎴愬姛"); + } } -- Gitblit v1.9.1