From e16302f9d475c7cc4dd18c5abf1a23cb5502e362 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期三, 28 五月 2025 14:57:56 +0800 Subject: [PATCH] 密码验证加- --- src/main/java/com/whyc/controller/UserController.java | 233 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 218 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/whyc/controller/UserController.java b/src/main/java/com/whyc/controller/UserController.java index caa3614..ee0f80a 100644 --- a/src/main/java/com/whyc/controller/UserController.java +++ b/src/main/java/com/whyc/controller/UserController.java @@ -1,32 +1,48 @@ package com.whyc.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.whyc.dto.Response; import com.whyc.pojo.UserInf; import com.whyc.service.UserService; -import io.swagger.annotations.*; +import com.whyc.util.ActionUtil; +import com.whyc.util.RSAUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.security.InvalidParameterException; import java.util.List; @RestController @RequestMapping("user") @Api(tags = "鐢ㄦ埛绠$悊-鐢ㄦ埛") @Slf4j -public class UserController { +public class UserController extends BaseController{ @Resource private UserService userService; + //@PostMapping + //@ApiOperation(value = "娣诲姞") + //public Response add(@RequestBody UserInf user){ + // return userService.add(user); + //} + @PostMapping - @ApiOperation(value = "娣诲姞") - public Response add(@RequestBody UserInf user){ - return userService.add(user); + @ApiOperation(value = "娣诲姞-RSA鍔犲瘑") + public Response addByRSA(@RequestBody UserInf user){ + return userService.addByRSA(user); } + @PostMapping("register") + @ApiOperation(value = "娉ㄥ唽鐢ㄦ埛") + public Response register(@RequestBody UserInf user){ + return userService.registerUser(user); + } @GetMapping @ApiOperation(value = "鏌ヨbyId") public Response<UserInf> getById(@RequestParam int id){ @@ -41,23 +57,210 @@ @GetMapping("page") @ApiOperation(value = "鏌ヨ鍒嗛〉") - public Response<IPage<UserInf>> getPage(@RequestParam int pageNum,int pageSize){ - Page<Object> page = new Page<>(pageNum, pageSize); - return new Response<IPage<UserInf>>().set(1,userService.getAllWithPage(page)); + public Response getPage(@RequestParam int pageNum,int pageSize){ + return new Response().set(1,userService.getAllWithPage(pageNum,pageSize)); } - @PutMapping + @PostMapping("update") @ApiOperation(value = "缂栬緫") public Response update(@RequestBody UserInf user){ - userService.update(user); - return new Response().setII(1,"鏇存柊鎴愬姛"); + return userService.update(user); } - @DeleteMapping + @PostMapping("delete") @ApiOperation(value = "鍒犻櫎") public Response delete(@RequestParam int id){ - userService.delete(id); + boolean deleteFlag = userService.delete(id); + if (!deleteFlag){ + return new Response().setII(0,"鍒犻櫎澶辫触,褰撳墠鐢ㄦ埛娌℃湁鐢ㄦ埛缂栬緫鏉冮檺"); + } return new Response().setII(1,"鍒犻櫎鎴愬姛"); } + @GetMapping("/searchUKeyToUName") + @ApiOperation(value = "鏍规嵁Ukey鏌ヨ鐢ㄦ埛") + public Response getUserByUkey(@RequestParam String uKeyId){ + UserInf userInf = userService.getUserByUKeyId(uKeyId); + Response response = new Response(); + if (userInf!=null){ + response.set(1,userInf,"UKey鏈夌粦瀹氱敤鎴�"); + }else{ + response.set(0,"Ukey娌℃湁缁戝畾鐢ㄦ埛"); + } + return response; + } + + @GetMapping("/searchUNameToUKey") + @ApiOperation(value = "鏍规嵁鐢ㄦ埛鍚嶆煡缁戝畾鐨刄key") + public Response getUserByUserName(@RequestParam String userName){ + UserInf userInf = userService.getUserByUserName(userName); + Response response = new Response(); + if (userInf!=null){ + if (StringUtils.isEmpty(userInf.getUkeyId())){ + response.set(-1,false,"璇ョ敤鎴锋病鏈夌粦瀹歎key"); + }else { + response.setII(1,true,userInf,"璇ョ敤鎴锋湁缁戝畾Ukey"); + } + }else{ + response.set(0,false,"璇ョ敤鎴蜂笉瀛樺湪"); + } + return response; + } + @PostMapping("/bindUkey") + @ApiOperation(value = "缁戝畾uKey") + public Response bindUkey(@RequestBody UserInf userInf){ + boolean b = userService.bindUkey(userInf); + if (b){ + return new Response().set(1,"缁戝畾鎴愬姛"); + }else { + return new Response().set(0,"缁戝畾澶辫触"); + } + + } + + @PostMapping("/checkUserPassword") + @ApiOperation(value = "妫�鏌ョ敤鎴峰瘑鐮�") + public Response checkUserPassword(@RequestParam String password){ + UserInf userInf = ActionUtil.getUser(); + //鍓嶇浼犻�掔殑瀵嗙爜瑙e瘑 + password = RSAUtil.decryptFrontP(password, RSAUtil.fontSeparator)[0]; + //鍐呭瓨瀛樺偍鐨勫瘑鐮佽В瀵� + String userPassword = userInf.getUpassword(); + userPassword = RSAUtil.decrypt(userPassword,RSAUtil.getPrivateKey()); + if (password.equals(userPassword)){ + return new Response().set(1); + }else { + return new Response().set(0); + } + } + + @PostMapping("/checkUserPasswordOfRSA") + @ApiOperation(value = "妫�鏌ョ敤鎴稲SA瀵嗙爜") + public Response checkUserPasswordOfREA(@RequestParam String pwd){ + UserInf userInf = ActionUtil.getUser(); + String passwordEncrypt = null; + /*try { + passwordEncrypt = URLDecoder.decode(pwd, "utf-8"); + }catch (UnsupportedEncodingException e){ + e.printStackTrace(); + }*/ + passwordEncrypt = pwd; + String password = RSAUtil.decryptFront(passwordEncrypt, RSAUtil.fontSeparator)[0]; + String passwordDB = RSAUtil.decrypt(userInf.getUpassword(),RSAUtil.getPrivateKey()); + if(passwordDB.equals(password)){ + return new Response().set(1); + }else { + return new Response().set(0); + } + } + @GetMapping("/checkAndUpdatePasswordByRSA") + @ApiOperation(value = "妫�鏌ュ苟淇敼鐢ㄦ埛RSA瀵嗙爜") + public Response checkAndUpdatePasswordByRSA(@RequestParam String oldPwd,@RequestParam String newPwd){ + UserInf userInf = ActionUtil.getUser(); + String passwordEncrypt = oldPwd; + String password = RSAUtil.decryptFront(passwordEncrypt, RSAUtil.fontSeparator)[0]; + String passwordDB = RSAUtil.decrypt(userInf.getUpassword(),RSAUtil.getPrivateKey()); + if(passwordDB.equals(password)){ + return userService.updatePasswordByRSA(userInf,newPwd); + }else { + return new Response().set(0,false,"鍘熷瘑鐮佷笉姝g‘"); + } + } + + @PostMapping("/updatePassword") + @ApiOperation(value = "淇敼瀵嗙爜") + public Response updatePassword(@RequestParam String password){ + UserInf userInf = ActionUtil.getUser(); + return userService.updatePassword(userInf,password); + } + + @PostMapping("/updatePasswordByRSA") + @ApiOperation(value = "淇敼瀵嗙爜-RSA") + public Response updatePasswordByRSA(@RequestParam String password){ + UserInf userInf = ActionUtil.getUser(); + return userService.updatePasswordByRSA(userInf,password); + } + + @GetMapping("updatePasswordByValidity") + @ApiOperation(value = "淇敼瀵嗙爜-瀵嗙爜澶辨晥") + public Response updatePasswordByValidity(@RequestParam String uname,@RequestParam String oldPwd,@RequestParam String newPwd) throws UnsupportedEncodingException { + return userService.updatePasswordByValidity(uname,oldPwd,newPwd); + } + + /** + * 1.棣栨鐧诲綍,璇峰厛淇敼鍒濆鍖栧彛浠� + * 2.瓒呰繃3涓湀娌℃湁淇敼鍙d护,璇蜂慨鏀瑰彛浠ゅ悗閲嶆柊鐧诲綍 + */ + @PostMapping("updatePassword2") + @ApiOperation(value = "淇敼瀵嗙爜-3涓湀鏈櫥褰�") + public Response updatePassword2(@RequestParam String passwordOld,String passwordNew){ + //鏍¢獙鑰佸瘑鐮� + String[] dataArr = RSAUtil.decryptFrontP(passwordOld, RSAUtil.fontSeparator); + passwordOld = dataArr[0]; + String passwordMD5 = dataArr[1]; + if(!ActionUtil.EncryptionMD5(passwordOld).equals(passwordMD5)){ + throw new InvalidParameterException("鍙傛暟鏍¢獙澶辫触"); + } + //鏍¢獙鏂板瘑鐮� + String[] dataNewArr = RSAUtil.decryptFrontP(passwordNew, RSAUtil.fontSeparator); + passwordNew = dataNewArr[0]; + String passwordNewMD5 = dataNewArr[1]; + if(!ActionUtil.EncryptionMD5(passwordNew).equals(passwordNewMD5)){ + throw new InvalidParameterException("鍙傛暟鏍¢獙澶辫触"); + } + + UserInf userInf = ActionUtil.getUser(); + + //鏍¢獙鐢ㄦ埛鍚嶅拰瀵嗙爜鏄惁鍖呭惈 + if(passwordNew.contains(userInf.getUName())){ + return new Response().set(1,false,"瀵嗙爜鍖呭惈鐢ㄦ埛鍚�"); + } + return userService.updatePassword2(userInf,passwordOld,passwordNew); + } + + + @GetMapping("/getUserInf") + @ApiOperation(value = "鑾峰彇褰撳墠鐢ㄦ埛鐨勭敤鎴峰悕绛変俊鎭�",notes = "鍘烾ser_infAction!searchUname(鑾峰彇鐢ㄦ埛鍚�)鎺ュ彛") + public Response getUserInf(){ + UserInf userInf = ActionUtil.getUser(); + return new Response().set(1,userInf); + } + + /** + * 璐﹀彿瑙i攣 + */ + @ApiOperation(value = "璐﹀彿瑙i攣",notes = "unLockType=1涓哄け璐ラ攣瀹氳В閿�,2涓轰笂涓湀鏈櫥褰曢攣瀹氳В閿�") + @PostMapping("unLock") + public Response unLock(@RequestParam int uId,@RequestParam int unLockType){ + userService.unLock(uId,unLockType); + return new Response().setII(1,"瑙i攣鎴愬姛"); + } + + /** + * 鍖呮満缁勯噸鍋氾紙绌挎妗嗭級鏌ヨ鎵�鏈夌殑鐢ㄦ埛-鏇存柊涓烘煡璇㈡湭琚坊鍔犲埌鏉冮檺缁勭殑鎵�鏈夌敤鎴� + */ + @ApiOperation(value = "鍖呮満缁勯噸鍋氾紙绌挎妗嗭級鏌ヨ鎵�鏈夌殑鐢ㄦ埛") + @GetMapping("searchCS_All2") + public Response searchCS_All2(){ + List<UserInf> list = userService.searchCS_All2(); + return new Response().set(1,list); + } + + /** + * 鍛婅娲惧崟涓紝鏌ヨ绔欑偣浜哄憳淇℃伅 + * @param stationId + * @return + */ + @ApiOperation(tags = "鍛婅娲惧崟", value = "鏍规嵁绔欑偣鏌ヨ鐩稿叧浜哄憳", notes = "User_infAction!getUserInfoByStationId") + @GetMapping("getUserInfoByStationId") + public Response getUserInfoByStationId(@RequestParam String stationId){ + List<UserInf> list = userService.getUserInfoByStationId(stationId); + return new Response().set(1,list); + } + + @ApiOperation(value = "浼崟鐐圭櫥褰�",notes = "杩斿洖鐨刣ata涓哄竷灏斿��,鏄惁鐧诲綍鎴愬姛;data2:鐢ㄦ埛鎵�鍦ㄧ殑鏉冮檺缁刬d;data3涓虹敤鎴峰璞�,鍐呭惈灞炴�id,uname,urole") + @GetMapping("loginByUId") + public Response searchSnIdByUId(@RequestParam int uId){ + return userService.loginByUId(uId); + } } -- Gitblit v1.9.1