src/main/java/com/whyc/controller/LoginController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/DocUserService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/UserBridgeService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/LoginController.java
New file @@ -0,0 +1,29 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.service.DocUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @RequestMapping("login") @RestController @Api(tags = "登录") public class LoginController { @Autowired private DocUserService userService; @PostMapping("/") @ApiOperation(value ="登录") public Response login(@RequestParam String name, String snId, HttpServletRequest request){ return userService.login(name,snId,request); } } 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,"登录成功"); } } src/main/java/com/whyc/service/UserBridgeService.java
@@ -31,7 +31,7 @@ public DocUser findPasswordByUserName(String userName) { DocUser userInf = null; QueryWrapper<DocUser> queryWrapper = Wrappers.query(); queryWrapper.select("uId","uName","upassword","UKey_ID","uRole","uSex","uMobilephone","uEmail","uAddr","uDepartment","uBirthDay").eq("uName",userName); queryWrapper.select("id","name","sn_id","role_id").eq("name",userName); userInf = userMapper.selectOne(queryWrapper); return userInf==null?new DocUser(0L,"用户不存在"):userInf;