회원탈퇴시 연체나 대출중 자료있으면 탈퇴못하게 수정 , 비밀번호 초기화로직 수정

This commit is contained in:
JSYOO 2021-12-06 11:43:45 +09:00
parent 6dde7e13c2
commit 6c673ddcb7
3 changed files with 28 additions and 15 deletions

View File

@ -120,6 +120,7 @@ public class MemberServiceImpl implements MemberService
* 초기화 비밀번호 랜덤생성 * 초기화 비밀번호 랜덤생성
*/ */
public String createInitPwd() { public String createInitPwd() {
SecureRandom rand = new SecureRandom();
// 비밀번호 자리수 // 비밀번호 자리수
int pwLength=8; int pwLength=8;
@ -157,11 +158,11 @@ public class MemberServiceImpl implements MemberService
boolean whileFlag = true; boolean whileFlag = true;
do { do {
int loopNum=(int)(inner_random() * 4); int loopNum=(int)(rand.nextDouble() * 4);
// 대문자생성 // 대문자생성
if((whileFlag && upperStr.equals("1")) || (!whileFlag && useU == 1 && loopNum == 0)){ if((whileFlag && upperStr.equals("1")) || (!whileFlag && useU == 1 && loopNum == 0)){
do { do {
upperChar = (char)(inner_random() * 26 + 65); upperChar = (char)(rand.nextDouble() * 26 + 65);
upperStr=String.valueOf(upperChar); upperStr=String.valueOf(upperChar);
} while (exceptionKey.indexOf(upperStr)!=-1); } while (exceptionKey.indexOf(upperStr)!=-1);
dummylist.add(upperStr); dummylist.add(upperStr);
@ -171,7 +172,7 @@ public class MemberServiceImpl implements MemberService
// 소문자생성 // 소문자생성
if((whileFlag && lowerStr.equals("1")) || (!whileFlag && useL == 1 && loopNum == 1)){ if((whileFlag && lowerStr.equals("1")) || (!whileFlag && useL == 1 && loopNum == 1)){
do { do {
lowerChar = (char)(inner_random() * 26 + 97); lowerChar = (char)(rand.nextDouble() * 26 + 97);
lowerStr=String.valueOf(lowerChar); lowerStr=String.valueOf(lowerChar);
} while (exceptionKey.indexOf(lowerStr)!=-1); } while (exceptionKey.indexOf(lowerStr)!=-1);
dummylist.add(lowerStr); dummylist.add(lowerStr);
@ -180,7 +181,7 @@ public class MemberServiceImpl implements MemberService
// 숫자생성(숫자 0,1 제외) // 숫자생성(숫자 0,1 제외)
if((whileFlag && ranNumberStr.equals("1")) || (!whileFlag && useN == 1 && loopNum == 2)){ 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); ranNumberStr=String.valueOf(ranNumber);
dummylist.add(ranNumberStr); dummylist.add(ranNumberStr);
whileNum++; whileNum++;
@ -188,7 +189,7 @@ public class MemberServiceImpl implements MemberService
// 특수문자생성 // 특수문자생성
if((whileFlag && ranSkeyStr.equals("1")) || (!whileFlag && useS == 1 && loopNum == 3)){ 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); ranSkey=specialKey.charAt(startSkey);
ranSkeyStr=String.valueOf(ranSkey); ranSkeyStr=String.valueOf(ranSkey);
dummylist.add(ranSkeyStr); dummylist.add(ranSkeyStr);
@ -204,12 +205,6 @@ public class MemberServiceImpl implements MemberService
return dummyPW; 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 { public NlibLoginVO selectAlreadySignUpId(OAuthUniversalUser oauthUser) throws Exception {
//이메일 암호화 //이메일 암호화
oauthUser.setSnsEmail(ariaCrypto.encode(oauthUser.getSnsUserId())); oauthUser.setSnsEmail(ariaCrypto.encode(oauthUser.getSnsUserId()));

View File

@ -23,6 +23,7 @@ import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.annotation.Secured;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
@ -40,6 +41,7 @@ import nlib.cmm.NlibCommonController;
import nlib.cmm.crypto.AriaCrypto; import nlib.cmm.crypto.AriaCrypto;
import nlib.cmm.service.NlibProperty; import nlib.cmm.service.NlibProperty;
import nlib.cmm.session.SessionConfig; import nlib.cmm.session.SessionConfig;
import nlib.col.service.RentService;
import nlib.info.service.InformService; import nlib.info.service.InformService;
import nlib.mail.EmailSender; import nlib.mail.EmailSender;
import nlib.mail.service.EmailVO; import nlib.mail.service.EmailVO;
@ -95,6 +97,9 @@ public class MemberController extends NlibCommonController{
@Resource(name="userInfoService") @Resource(name="userInfoService")
private UserInfoService userInfoService; private UserInfoService userInfoService;
@Resource(name = "rentService")
private RentService rentService;
@Resource(name="memberService") @Resource(name="memberService")
private MemberService memberService; private MemberService memberService;
@ -736,6 +741,7 @@ public class MemberController extends NlibCommonController{
* 회원탈퇴 * 회원탈퇴
* @exception Exception * @exception Exception
*/ */
@Secured("ROLE_USER")
@RequestMapping(value="/member/deleteMembershipForm.do") @RequestMapping(value="/member/deleteMembershipForm.do")
public String deleteMembershipForm(HttpServletResponse response,Authentication authentication,HttpServletRequest request,ModelMap model) throws Exception{ 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{ public @ResponseBody String deleteMembership(Authentication authentication,HttpServletResponse response,HttpServletRequest request,ModelMap model) throws Exception{
//사용자 정보를 가져온다. //사용자 정보를 가져온다.
NlibLoginVO loginVO = getNlibLoginVO(authentication); NlibLoginVO loginVO = getNlibLoginVO(authentication);
String message="";
if(loginVO == null) { if(loginVO == null) {
model.addAttribute("msg","잘못된 접근입니다. \\n장시간 대기로 다시 로그인 하신 후, 이용해 주시기 바랍니다."); model.addAttribute("msg","잘못된 접근입니다. \\n장시간 대기로 다시 로그인 하신 후, 이용해 주시기 바랍니다.");
model.addAttribute("url","${pageContext.request.contextPath}"+"/"); model.addAttribute("url","${pageContext.request.contextPath}"+"/");
return "nlib/cmm/alert"; return "nlib/cmm/alert";
} }
// 대출/방문열람 현황
Map<String, String> 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.setJoinCouncilCd(getCurCouncilCd(request));
loginVO = loginService.selectLoginUserInfo(loginVO); loginVO = loginService.selectLoginUserInfo(loginVO);
String password = egovPasswordEncoder.encryptPassword(loginVO.getLoginUserId()+request.getParameter("password").trim()); String password = egovPasswordEncoder.encryptPassword(loginVO.getLoginUserId()+request.getParameter("password").trim());
String message="";
if(loginVO != null && (loginVO.getPassword().equals(password))) if(loginVO != null && (loginVO.getPassword().equals(password)))
{ {
//회원탈퇴 //회원탈퇴

View File

@ -43,7 +43,11 @@ function deleteMembership()
async: false, async: false,
data : {password:$("#password").val()}, data : {password:$("#password").val()},
success : function(result){ success : function(result){
if(result=="delete") if(result=="nonReturn")
{
alert("대출중이거나 연체된 자료가 있어 회원탈퇴처리가 불가능합니다.");
}
else if(result=="delete")
{ {
alert("탈퇴처리 되었습니다.감사합니다."); alert("탈퇴처리 되었습니다.감사합니다.");
location.href="${pageContext.request.contextPath}/logout"; location.href="${pageContext.request.contextPath}/logout";