From 6c673ddcb76d680af5702e4b80364a36f3a2b54a Mon Sep 17 00:00:00 2001 From: JSYOO Date: Mon, 6 Dec 2021 11:43:45 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=ED=9A=8C=EC=9B=90=ED=83=88=ED=87=B4?= =?UTF-8?q?=EC=8B=9C=20=EC=97=B0=EC=B2=B4=EB=82=98=20=EB=8C=80=EC=B6=9C?= =?UTF-8?q?=EC=A4=91=20=EC=9E=90=EB=A3=8C=EC=9E=88=EC=9C=BC=EB=A9=B4=20?= =?UTF-8?q?=ED=83=88=ED=87=B4=EB=AA=BB=ED=95=98=EA=B2=8C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20,=20=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EC=B4=88=EA=B8=B0=ED=99=94=EB=A1=9C=EC=A7=81=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/service/impl/MemberServiceImpl.java | 17 ++++++---------- .../java/nlib/user/web/MemberController.java | 20 ++++++++++++++++--- .../jsp/nlib/member/deleteMembershipForm.jsp | 6 +++++- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/main/java/nlib/user/service/impl/MemberServiceImpl.java b/src/main/java/nlib/user/service/impl/MemberServiceImpl.java index 9ea6df95..c56b7355 100644 --- a/src/main/java/nlib/user/service/impl/MemberServiceImpl.java +++ b/src/main/java/nlib/user/service/impl/MemberServiceImpl.java @@ -120,6 +120,7 @@ public class MemberServiceImpl implements MemberService * 초기화 비밀번호 랜덤생성 */ public String createInitPwd() { + SecureRandom rand = new SecureRandom(); // 비밀번호 자리수 int pwLength=8; @@ -157,11 +158,11 @@ public class MemberServiceImpl implements MemberService boolean whileFlag = true; do { - int loopNum=(int)(inner_random() * 4); + int loopNum=(int)(rand.nextDouble() * 4); // 대문자생성 if((whileFlag && upperStr.equals("1")) || (!whileFlag && useU == 1 && loopNum == 0)){ do { - upperChar = (char)(inner_random() * 26 + 65); + upperChar = (char)(rand.nextDouble() * 26 + 65); upperStr=String.valueOf(upperChar); } while (exceptionKey.indexOf(upperStr)!=-1); dummylist.add(upperStr); @@ -171,7 +172,7 @@ public class MemberServiceImpl implements MemberService // 소문자생성 if((whileFlag && lowerStr.equals("1")) || (!whileFlag && useL == 1 && loopNum == 1)){ do { - lowerChar = (char)(inner_random() * 26 + 97); + lowerChar = (char)(rand.nextDouble() * 26 + 97); lowerStr=String.valueOf(lowerChar); } while (exceptionKey.indexOf(lowerStr)!=-1); dummylist.add(lowerStr); @@ -180,7 +181,7 @@ public class MemberServiceImpl implements MemberService // 숫자생성(숫자 0,1 제외) if((whileFlag && ranNumberStr.equals("1")) || (!whileFlag && useN == 1 && loopNum == 2)){ - ranNumber=(int)(inner_random() * 8 + 2); + ranNumber=(int)(rand.nextDouble() * 8 + 2); ranNumberStr=String.valueOf(ranNumber); dummylist.add(ranNumberStr); whileNum++; @@ -188,7 +189,7 @@ public class MemberServiceImpl implements MemberService // 특수문자생성 if((whileFlag && ranSkeyStr.equals("1")) || (!whileFlag && useS == 1 && loopNum == 3)){ - startSkey=(int)(inner_random() * (specialKey.length()-1))+1; + startSkey=(int)(Math.random() * (specialKey.length()-1))+1; ranSkey=specialKey.charAt(startSkey); ranSkeyStr=String.valueOf(ranSkey); dummylist.add(ranSkeyStr); @@ -204,12 +205,6 @@ public class MemberServiceImpl implements MemberService return dummyPW; } - public double inner_random() { - long seed= new Date().getTime(); - seed = (seed*9301 +49297) % 233280; - return seed/(233280.0); - } - public NlibLoginVO selectAlreadySignUpId(OAuthUniversalUser oauthUser) throws Exception { //이메일 암호화 oauthUser.setSnsEmail(ariaCrypto.encode(oauthUser.getSnsUserId())); diff --git a/src/main/java/nlib/user/web/MemberController.java b/src/main/java/nlib/user/web/MemberController.java index 9e335044..9da5a50b 100644 --- a/src/main/java/nlib/user/web/MemberController.java +++ b/src/main/java/nlib/user/web/MemberController.java @@ -23,6 +23,7 @@ import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.access.annotation.Secured; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -40,6 +41,7 @@ import nlib.cmm.NlibCommonController; import nlib.cmm.crypto.AriaCrypto; import nlib.cmm.service.NlibProperty; import nlib.cmm.session.SessionConfig; +import nlib.col.service.RentService; import nlib.info.service.InformService; import nlib.mail.EmailSender; import nlib.mail.service.EmailVO; @@ -95,6 +97,9 @@ public class MemberController extends NlibCommonController{ @Resource(name="userInfoService") private UserInfoService userInfoService; + @Resource(name = "rentService") + private RentService rentService; + @Resource(name="memberService") private MemberService memberService; @@ -736,6 +741,7 @@ public class MemberController extends NlibCommonController{ * 회원탈퇴 폼 * @exception Exception */ + @Secured("ROLE_USER") @RequestMapping(value="/member/deleteMembershipForm.do") public String deleteMembershipForm(HttpServletResponse response,Authentication authentication,HttpServletRequest request,ModelMap model) throws Exception{ //사용자 정보를 가져온다. @@ -763,19 +769,27 @@ public class MemberController extends NlibCommonController{ public @ResponseBody String deleteMembership(Authentication authentication,HttpServletResponse response,HttpServletRequest request,ModelMap model) throws Exception{ //사용자 정보를 가져온다. NlibLoginVO loginVO = getNlibLoginVO(authentication); + String message=""; + if(loginVO == null) { model.addAttribute("msg","잘못된 접근입니다. \\n장시간 대기로 다시 로그인 하신 후, 이용해 주시기 바랍니다."); model.addAttribute("url","${pageContext.request.contextPath}"+"/"); return "nlib/cmm/alert"; } - + + // 대출/방문열람 현황 + Map rentStats = rentService.getRentStats(loginVO.getMbInfoId()); + model.addAttribute("rentStats", rentStats); + + if(Integer.parseInt(rentStats.get("lentCnt")) > 0 || Integer.parseInt(rentStats.get("lentOverCnt")) > 0) { + return message = "nonReturn"; + } + loginVO.setJoinCouncilCd(getCurCouncilCd(request)); loginVO = loginService.selectLoginUserInfo(loginVO); String password = egovPasswordEncoder.encryptPassword(loginVO.getLoginUserId()+request.getParameter("password").trim()); - String message=""; - if(loginVO != null && (loginVO.getPassword().equals(password))) { //회원탈퇴 diff --git a/src/main/webapp/WEB-INF/jsp/nlib/member/deleteMembershipForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/member/deleteMembershipForm.jsp index 8f1acc58..b2a185e2 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/member/deleteMembershipForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/member/deleteMembershipForm.jsp @@ -43,7 +43,11 @@ function deleteMembership() async: false, data : {password:$("#password").val()}, success : function(result){ - if(result=="delete") + if(result=="nonReturn") + { + alert("대출중이거나 연체된 자료가 있어 회원탈퇴처리가 불가능합니다."); + } + else if(result=="delete") { alert("탈퇴처리 되었습니다.감사합니다."); location.href="${pageContext.request.contextPath}/logout"; From de28802a934d698283d42f6f8255fcb9760779ff Mon Sep 17 00:00:00 2001 From: JSYOO Date: Mon, 6 Dec 2021 11:43:59 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EC=BB=A4=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/nlib/user/web/MemberController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/nlib/user/web/MemberController.java b/src/main/java/nlib/user/web/MemberController.java index 9da5a50b..15a2d2a3 100644 --- a/src/main/java/nlib/user/web/MemberController.java +++ b/src/main/java/nlib/user/web/MemberController.java @@ -782,7 +782,7 @@ public class MemberController extends NlibCommonController{ model.addAttribute("rentStats", rentStats); if(Integer.parseInt(rentStats.get("lentCnt")) > 0 || Integer.parseInt(rentStats.get("lentOverCnt")) > 0) { - return message = "nonReturn"; + return message = "nonReturn"; } loginVO.setJoinCouncilCd(getCurCouncilCd(request));