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/FaceController.java | 84 +++++++++++++++++++++++++++++++++--------- 1 files changed, 66 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/whyc/controller/FaceController.java b/src/main/java/com/whyc/controller/FaceController.java index 48b254d..0a99257 100644 --- a/src/main/java/com/whyc/controller/FaceController.java +++ b/src/main/java/com/whyc/controller/FaceController.java @@ -3,28 +3,31 @@ import com.arcsoft.face.FaceEngine; import com.arcsoft.face.toolkit.ImageFactory; import com.arcsoft.face.toolkit.ImageInfo; +import com.whyc.constant.UserOperation; import com.whyc.constant.YamlProperties; import com.whyc.dto.Response; import com.whyc.factory.FaceEngineFactory; import com.whyc.pojo.PermitGroup; import com.whyc.pojo.UserInf; -import com.whyc.service.FaceService; -import com.whyc.service.PermitGroupUserService; -import com.whyc.service.UserService; +import com.whyc.service.*; import com.whyc.util.ActionUtil; +import com.whyc.util.CommonUtil; import com.whyc.util.FaceIdentifyUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.system.ApplicationHome; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import sun.misc.BASE64Decoder; import javax.annotation.Resource; +import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -46,6 +49,12 @@ @Resource private UserService userService; + + @Resource + private MapOutlineService mapOutlineService; + + @Autowired + private BaoJiGroupUserService baoJiGroupUserService; @GetMapping("activeOnline") @ApiOperation(value = "鍦ㄧ嚎婵�娲讳汉鑴歌瘑鍒紩鎿�",notes = "鍙渶瑕佸垰寮�濮嬫椂璋冪敤涓�娆�,浼氬鑷碼ppId涓庣‖浠惰澶囩粦瀹�,蹇呴』鏈夊閮ㄧ綉缁�,鍚﹀垯婵�娲讳細澶辫触!" + @@ -75,6 +84,8 @@ public Response add(@RequestBody Map<String,Object> paramMap ){ String fileData = (String) paramMap.get("fileData"); String uName = (String) paramMap.get("uName"); + //杩囨护 uName鐨勭壒娈婂瓧绗�,閬垮厤璺緞閬嶅巻鏀诲嚮 + uName = ActionUtil.filterFileName(uName); Integer uId = Integer.parseInt((String)paramMap.get("uId")); //浼犲弬 uId,uName,fileData--鏂囦欢娴� fileData = fileData.replaceAll(" ", "+"); @@ -128,16 +139,22 @@ //鏂囦欢鍏ㄨ矾寰� String fileName = fileDirName + File.separator + uName + ".jpg"; - + FileOutputStream fot=null; try { - FileOutputStream fot = new FileOutputStream(fileName); - + fot = new FileOutputStream(fileName); fot.write(dataBytes); fot.flush(); - fot.close(); } catch (IOException e) { e.printStackTrace(); + }finally { + if(fot!=null){ + try { + fot.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } /*=========鏁版嵁搴撹〃鏇存柊===========*/ @@ -155,11 +172,13 @@ * 浜鸿劯搴撶鐞�: 鏇存柊 * @return */ - @PutMapping + @PostMapping("update") @ApiOperation(value = "鏇存柊") public Response update(@RequestBody String fileData,@RequestParam String uName){ //浼犲弬,uName,fileData--鏂囦欢娴� + //杩囨护 uName鐨勭壒娈婂瓧绗�,閬垮厤璺緞閬嶅巻鏀诲嚮 + uName = ActionUtil.filterFileName(uName); //鐢变簬鍥剧墖瀛楃涓叉槸鐢眀ase64缂栫爜鐨�,瑙g爜鎴愬瓧鑺傛暟缁� fileData = fileData.replaceAll(" ", "+"); fileData = fileData.split(",")[1]; @@ -204,16 +223,21 @@ //鏂囦欢鍏ㄨ矾寰� String fileName = fileDirName + File.separator + uName + ".jpg"; - + FileOutputStream fot =null; try { - FileOutputStream fot = new FileOutputStream(fileName); - + fot = new FileOutputStream(fileName); fot.write(dataBytes); fot.flush(); - fot.close(); - } catch (IOException e) { e.printStackTrace(); + }finally { + if(fot!=null){ + try { + fot.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } return new Response().setII(1,"鏇存柊鎴愬姛"); } @@ -225,12 +249,14 @@ * 浜鸿劯搴撶鐞�: 鍒犻櫎 * @return */ - @DeleteMapping + @PostMapping("delete") @ApiOperation(value = "鍒犻櫎") @Transactional public Response delete(@RequestParam Integer uId,@RequestParam Integer faceId, @RequestParam String uName,HttpServletRequest request){ + //杩囨护 uName鐨勭壒娈婂瓧绗�,閬垮厤璺緞閬嶅巻鏀诲嚮 + uName = ActionUtil.filterFileName(uName); //鏇存柊user_inf鍜宖ace琛� service.update(uId,faceId); @@ -288,7 +314,7 @@ */ @PostMapping("faceCompare2N") @ApiOperation(value = "浜鸿劯璇嗗埆瀵规瘮") - public Response faceCompare2N(@RequestBody String fileData,@RequestParam String uKeyId){ + public Response faceCompare2N(@RequestBody String fileData,@RequestParam String uKeyId,HttpServletRequest request){ Response res = new Response(); //鍏堥獙璇乽KeyId瀵瑰簲鐨勭敤鎴� UserInf userByUKeyId = userService.getUserByUKeyId(uKeyId); @@ -315,31 +341,40 @@ if (res.getCode() == 1) { res = FaceIdentifyUtil.orientAndPxDetect(faceEngine, imageInfo); //浜哄儚瑙掑害,澶у皬鏍¢獙閫氳繃 - if(res.getCode()==1) { + if((boolean) res.getData()) { + //閲嶇疆鏍囪瘑 + res.setData(null); + res.setMsg(null); //鑾峰彇鏁版嵁搴撲腑鎵�鏈夌殑浜鸿劯鍥剧墖 List<UserInf> userInfList = service.findAllFaceUrl(); if(userInfList.size()==0){ res.setCode(0); res.setMsg("浜鸿劯搴撴殏鏃犱换浣曟暟鎹�"); }else{ + boolean urlExist = false; for (UserInf temp:userInfList){ String filePath = temp.getFace().getUrl(); File file = new File(filePath); //涓嶅瓨鍦ㄥ垯涓嶇户缁墽琛� if(!file.exists()){ continue; + }else{ + urlExist = true; } ImageInfo imageInfo2 = ImageFactory.getRGBData(file); res = FaceIdentifyUtil.faceCompare(faceEngine, imageInfo, imageInfo2); //瀵规瘮鎴愬姛,璁板綍鐢ㄦ埛鐧诲綍淇℃伅 - if(res.getCode()==1){ + if((boolean) res.getData()){ //Ukey瀵瑰簲鐢ㄦ埛鍜屼汉鑴稿搴旂敤鎴烽獙璇� if(!temp.getUId().equals(userByUKeyId.getUId())){ return res.set(1,false,"UKey瀵瑰簲鐢ㄦ埛鍜屽綋鍓嶄汉鑴稿搴旂敤鎴蜂笉鍖归厤"); } - res.setData2(temp); + List<Object> dataList = new ArrayList<>(); + dataList.add(temp); // 灏嗙櫥闄嗘垚鍔熺殑鐢ㄦ埛瀛樺叆session + ServletContext servletContext = request.getServletContext(); + servletContext.setAttribute(temp.getUName(), request.getSession().getId()); ActionUtil.getSession().setAttribute("user", temp); //璁剧疆session涓嶆椿鍔ㄦ椂闂翠负30鍒� @@ -347,16 +382,29 @@ ActionUtil.getSession().setAttribute("ip", ActionUtil.getRequest().getRemoteAddr()); List<PermitGroup> permitList = permitGroupUserService.getPermitByUser(temp.getUId()); if (permitList!=null && permitList.size()!=0) { + dataList.add(permitList.get(0).getPermitGroupId()); ActionUtil.getSession().setAttribute("permits", permitList); } else { res.setCode(1); res.setData(false); res.setMsg("杩樻湭鍒嗛厤鏉冮檺"); } + + //鏌ヨ鐢ㄦ埛瀵瑰簲鐨勭彮缁勬爣璇� + dataList.add(baoJiGroupUserService.getGroupFlag(temp.getUId().intValue())); + //鏌ヨ婵�娲荤殑鍦板浘 + String mapName = mapOutlineService.selectMapName(); + dataList.add(mapName); + CommonUtil.record(temp.getUId(), UserOperation.TYPE_LOGIN.getType(), UserOperation.TYPE_LOGIN.getTypeName(), UserOperation.TYPE_LOGIN.getTypeNameEn()); + res.setData2(dataList); + //灏嗘柊鐧诲綍鐨勭敤鎴峰瓨鍏pplication userService.setApplication(temp); } } + if(!urlExist){ + res.set(1,false,"ukey瀵瑰簲鐨勪汉鑴稿簱璺緞涓嶅瓨鍦�"); + } } } } -- Gitblit v1.9.1