diff --git a/src/main/java/nlib/col/web/InterestController.java b/src/main/java/nlib/col/web/InterestController.java index 19725dae..ad3d1ace 100644 --- a/src/main/java/nlib/col/web/InterestController.java +++ b/src/main/java/nlib/col/web/InterestController.java @@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.annotation.Secured; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -79,6 +80,7 @@ public class InterestController extends NlibCommonController * @param req * @return */ + @Secured("ROLE_USER") @RequestMapping("/interest/listInterests.do") public String listInterests(HttpServletRequest req, HttpServletRequest request, Authentication authentication, @RequestParam Map paramMap, diff --git a/src/main/java/nlib/user/web/MemberController.java b/src/main/java/nlib/user/web/MemberController.java index f9c82891..caa7dc55 100644 --- a/src/main/java/nlib/user/web/MemberController.java +++ b/src/main/java/nlib/user/web/MemberController.java @@ -479,7 +479,7 @@ public class MemberController extends NlibCommonController{ SessionConfig.setNewMemberInfo(jsessionId,oauthUser); } - + //이메일 발송 // 결과가 정상이면, 안내 메일 발송 // > 템플릿파일에서 내용 mailing.sender.membership.certTemplate @@ -496,8 +496,16 @@ public class MemberController extends NlibCommonController{ replaceContents.put("${time}", time); replaceContents.put("${hostName}", hostName); replaceContents.put("${councilNm}", councilNm); + replaceContents.put("${name}", StringUtil.getString(loginVO.getName(),"")); - emailUtil.sendEmail(email,"온라인자료대출시스템 이메일 인증번호입니다.",replaceContents,certTemplate); + String result = emailUtil.sendEmail(email,"온라인자료대출시스템 이메일 인증번호입니다.",replaceContents,certTemplate); + + if(result == "templateFail") + { + map.put("msg","이메일 발송에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다."); + map.put("emailCertYn","N"); + return map; + } map.put("msg","이메일 인증번호가 발송됐습니다."); map.put("emailCertYn","Y"); @@ -726,11 +734,23 @@ public class MemberController extends NlibCommonController{ //내정보페이지, 회원가입시 핸드폰번호가 같을시 비밀번호 초기화 String email = vo.getEmail(); vo.setEmail(""); - + int count =0; //mbinfo를 이용해 조회 - NlibLoginVO loginVO=userInfoService.selectMyInfo(vo); + NlibLoginVO loginVO = userInfoService.selectMyInfo(vo); - if(!email.equals(loginVO.getEmail())) + //일치하는 이메일이 있는지 확인 + List snsLoginVO = userInfoService.selectSnsSignUpList(vo); + if(email.equals(loginVO.getEmail()) || email.equals(loginVO.getLoginUserId())) + { + count +=1; + } + for(int i = 0; snsLoginVO.size() > i;i++) + { + if(email.equals(snsLoginVO.get(i).getSnsUserId())) + count +=1; + } + + if(count == 0) { return "fail"; } @@ -772,9 +792,7 @@ public class MemberController extends NlibCommonController{ replaceContents.put("${hostName}", hostName); replaceContents.put("${councilNm}", councilNm); replaceContents.put("${name}", name); - emailUtil.sendEmail(email,"온라인자료대출시스템 비밀번호 초기화 메일입니다.",replaceContents,pwdTemplate); - - message="success"; + message = emailUtil.sendEmail(email,"온라인자료대출시스템 비밀번호 초기화 메일입니다.",replaceContents,pwdTemplate); }else { message="fail"; } diff --git a/src/main/java/nlib/util/EmailUtil.java b/src/main/java/nlib/util/EmailUtil.java index 84c04b0e..b872da6f 100644 --- a/src/main/java/nlib/util/EmailUtil.java +++ b/src/main/java/nlib/util/EmailUtil.java @@ -1,6 +1,8 @@ package nlib.util; import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -13,11 +15,14 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import egovframework.com.cmm.EgovWebUtil; import egovframework.com.utl.fcc.service.EgovStringUtil; +import nlib.bbs.service.impl.QnaServiceImpl; import nlib.mail.EmailSender; import nlib.mail.service.EmailVO; @@ -46,6 +51,8 @@ import nlib.mail.service.EmailVO; @Component("emailUtil") public class EmailUtil{ + static Logger log = LoggerFactory.getLogger(EmailUtil.class); + @Autowired private EmailSender emailSender; @@ -57,9 +64,9 @@ public class EmailUtil{ * @param templateFilePath * @throws Exception */ - public void sendEmail(String reciverEmail, String subject, Map replaceContents, String templateFilePath) throws Exception { + public String sendEmail(String reciverEmail, String subject, Map replaceContents, String templateFilePath) throws Exception { EmailVO email = new EmailVO(); - + String error=""; Path path = Paths.get(templateFilePath); Charset cs = StandardCharsets.UTF_8; List list = new ArrayList(); @@ -67,9 +74,14 @@ public class EmailUtil{ try { list = Files.readAllLines(path,cs); }catch(IOException e) { - e.printStackTrace(); + error=getPrintStackTrace(e); } + if(!error.equals("")) + { + log.error(error); + return "templateFail"; + } for(String readLine : list) { contents+=readLine; } @@ -86,5 +98,14 @@ public class EmailUtil{ email.setSubject(subject); email.setContent(contents); emailSender.SendEmail(email); + return "success"; } + public static String getPrintStackTrace(Exception e) { + + StringWriter errors = new StringWriter(); + e.printStackTrace(new PrintWriter(errors)); + + return errors.toString(); + + } } diff --git a/src/main/webapp/WEB-INF/jsp/nlib/member/initPasswordForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/member/initPasswordForm.jsp index 9f6c674f..763c96c0 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/member/initPasswordForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/member/initPasswordForm.jsp @@ -84,9 +84,13 @@ function goFindPw(){ { alert("일치하는 정보가 없습니다. 다시 확인해주세요."); } + else if(result == "templateFail") + { + alert("이메일 발송에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다."); + } },error : function(){ - alert("이메일 발송에 실패하였습니다."); + alert("이메일 발송에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다."); } }) diff --git a/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp index c1657100..ba2287cd 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp @@ -196,13 +196,13 @@ $(document).ready(function() { $("#mobileCertYn").val("Y"); $("#mobileCertSendBtn").css("display","none"); $("#mobileReSend").css("display","none"); - $("#mobileCertForm").css("display","none"); - $("#mobileSuc").css("display",""); + $("[id^='mobileSuc']").css("display","inline-block"); + $("[id^='mobileVrfctNo']").css("display","none"); }else{ $("#mobileCertYn").val("N"); $("#mobileCertSendBtn").css("display",""); $("#mobileReSend").css("display",""); - $("#mobileSuc").css("display","none"); + $("[id^='mobileSuc']").css("display","none"); } }); <% @@ -214,12 +214,26 @@ $(document).ready(function() { $("#emailCertYn").val("Y"); $("#emailCertSendBtn").css("display","none"); $("#emailReSend").css("display","none"); - $("#emailCertForm").css("display","none"); - + $("[id^='emailSuc']").css("display","inline-block"); + $("[id^='emailVrfctNo']").css("display","none"); }else{ $("#emailCertYn").val("N"); $("#emailCertSendBtn").css("display",""); $("#emailReSend").css("display",""); + $("[id^='emailSuc']").css("display","none"); + } + }); + <% + //비밀번호가 변하는것 실시간 감지 + %> + $("#password,#passwordConfirm").on("propertychange change keyup paste input", function() { + if($("#password").val() == $("#passwordConfirm").val()) + { + $("#pwdSuc").css("display","inline-block"); + $("#pwdFail").css("display","none"); + }else{ + $("#pwdSuc").css("display","none"); + $("#pwdFail").css("display","inline-block"); } }); }) @@ -248,13 +262,13 @@ function emailCert(){ if(result.emailCertYn=="Y") { $("#emailCertYn").val("N"); - $("#emailCertForm").css("display","") } if(result.emailCertYn=="N") { $("#emailCertYn").val("N"); - $("#emailCertForm").css("display","none") } + $("[id^='emailSuc']").css("display","none"); + $("[id^='emailVrfctNo']").css("display","inline-block"); },error : function(){ } }) @@ -278,6 +292,10 @@ function certEmailCheck(){ { alert("인증되었습니다."); $("#emailCertYn").val("Y"); + $("#emailCertSendBtn").css("display","none"); + $("#emailReSend").css("display","none"); + $("[id^='emailSuc']").css("display","inline-block"); + $("[id^='emailVrfctNo']").css("display","none"); }else { alert("인증번호가 일치하지않습니다."); @@ -312,8 +330,8 @@ function mobileCert(){ success : function(result){ alert("인증번호가 발송됐습니다."); $("#mobileCertYn").val("N"); - $("#mobileSuc").css("display","none"); - $("#mobileCertForm").css("display","") + $("[id^='mobileSuc']").css("display","none"); + $("[id^='mobileVrfctNo']").css("display","inline-block"); },error : function(){ } }) @@ -337,7 +355,10 @@ function certMobileCheck(){ { alert("인증되었습니다."); $("#mobileCertYn").val("Y"); - $("#mobileSuc").css("display",""); + $("#mobileCertSendBtn").css("display","none"); + $("#mobileReSend").css("display","none"); + $("[id^='mobileSuc']").css("display","inline-block"); + $("[id^='mobileVrfctNo']").css("display","none"); document.joinForm.action="${pageContext.request.contextPath}/member/selectAlreadySignUpMobilePopup.do"; fn_layerPopFormSubmit("joinForm",false); }else @@ -530,10 +551,11 @@ function calcAge(birth) { - @@ -546,11 +568,11 @@ function calcAge(birth) { - @@ -575,8 +597,8 @@ function calcAge(birth) { 9자리 이상, 숫자/문자/특수문자를 혼합하여 입력 - 일치합니다. - 일치하지 않습니다. + 일치합니다. + 일치하지 않습니다. - 입력하신 비밀번호는 ‘계정 연결’, ‘내 정보 확인’, ‘회원탈퇴’ 시, 회원님의 정보보호 및 본인확인을 위해 사용됩니다. diff --git a/src/main/webapp/WEB-INF/jsp/nlib/userInfo/pwCertMyInfo.jsp b/src/main/webapp/WEB-INF/jsp/nlib/userInfo/pwCertMyInfo.jsp index 77fb4f2d..ad46cdd6 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/userInfo/pwCertMyInfo.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/userInfo/pwCertMyInfo.jsp @@ -34,7 +34,6 @@ - Insert title here