회원가입폼, 로그인폼 구성
This commit is contained in:
parent
d97828a25f
commit
a476cba476
11
pom.xml
11
pom.xml
@ -190,6 +190,17 @@
|
|||||||
<version>3.3.0</version>
|
<version>3.3.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- ajax (DIGITALSHIP JSYOO 2021.07.12)-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-core</artifactId>
|
||||||
|
<version>2.7.3</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-databind</artifactId>
|
||||||
|
<version>2.7.3</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- Tiles (DIGITALSHIP KNKIM 2021.07.06)-->
|
<!-- Tiles (DIGITALSHIP KNKIM 2021.07.06)-->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@ -13,8 +13,9 @@ public class InformDAO
|
|||||||
{
|
{
|
||||||
private static final Logger log = LoggerFactory.getLogger(InformDAO.class);
|
private static final Logger log = LoggerFactory.getLogger(InformDAO.class);
|
||||||
|
|
||||||
public DataApiResVO selectInform(DataApiReqVO reqVO) {
|
public DataApiResVO selectTermsInform(DataApiReqVO reqVO) {
|
||||||
return null;
|
DataApiResVO resVO = new DataApiResVO();
|
||||||
|
return resVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
|
|
||||||
package nlib.info.service.impl;
|
package nlib.info.service.impl;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -21,7 +23,16 @@ public class InformServiceImpl implements InformService
|
|||||||
|
|
||||||
|
|
||||||
public DataApiResVO selectTermsInfo(DataApiReqVO reqVO) {
|
public DataApiResVO selectTermsInfo(DataApiReqVO reqVO) {
|
||||||
return null;
|
|
||||||
|
DataApiResVO resVO= informDAO.selectTermsInform(reqVO);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 테스트 데이터
|
||||||
|
* */
|
||||||
|
HashMap map = new HashMap();
|
||||||
|
map.put("terms", "이용약관입니다~");
|
||||||
|
resVO.setInfo(map);
|
||||||
|
return resVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataApiResVO selectPrivacyInfo(DataApiReqVO reqVO) {
|
public DataApiResVO selectPrivacyInfo(DataApiReqVO reqVO) {
|
||||||
|
|||||||
@ -11,23 +11,27 @@ import org.springframework.ui.ModelMap;
|
|||||||
|
|
||||||
import nlib.info.service.InformService;
|
import nlib.info.service.InformService;
|
||||||
import nlib.info.service.impl.InformServiceImpl;
|
import nlib.info.service.impl.InformServiceImpl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description :
|
|
||||||
* @author
|
|
||||||
* @since
|
|
||||||
* @version
|
|
||||||
* @see
|
|
||||||
*
|
|
||||||
* <pre>
|
* <pre>
|
||||||
* << Modification Information >>
|
* @Class Name : InformController.java
|
||||||
*
|
*
|
||||||
* Date Modifier Expression
|
* @Description :
|
||||||
* ------- -------- ---------------------------
|
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
public class InformController
|
public class InformController
|
||||||
|
|||||||
@ -59,6 +59,10 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
http.authorizeRequests()
|
http.authorizeRequests()
|
||||||
.antMatchers("/login/login*.do").permitAll()
|
.antMatchers("/login/login*.do").permitAll()
|
||||||
.antMatchers("/login/logout*.do").permitAll()
|
.antMatchers("/login/logout*.do").permitAll()
|
||||||
|
.antMatchers("/login/naver*.do").permitAll()
|
||||||
|
.antMatchers("/member/*.do").permitAll()
|
||||||
|
.antMatchers("/member/*.ajax").permitAll()
|
||||||
|
.antMatchers("/userInfo/*.do").permitAll()
|
||||||
.antMatchers("/info/inform/*.do").permitAll()
|
.antMatchers("/info/inform/*.do").permitAll()
|
||||||
.antMatchers("/").permitAll()
|
.antMatchers("/").permitAll()
|
||||||
.antMatchers("/index.jsp").permitAll()
|
.antMatchers("/index.jsp").permitAll()
|
||||||
|
|||||||
@ -2,6 +2,28 @@ package nlib.user.service;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : NlibLoginVO.java
|
||||||
|
*
|
||||||
|
* @Description : 로그인VO
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class NlibLoginVO implements Serializable {
|
public class NlibLoginVO implements Serializable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -37,9 +59,29 @@ public class NlibLoginVO implements Serializable {
|
|||||||
private String ip;
|
private String ip;
|
||||||
/** GPKI인증 DN */
|
/** GPKI인증 DN */
|
||||||
private String dn;
|
private String dn;
|
||||||
/** authkey */
|
|
||||||
private String authKey;
|
|
||||||
|
|
||||||
|
/** 인증키 */
|
||||||
|
private String authKey;
|
||||||
|
/** 페이지번호 */
|
||||||
|
private String page;
|
||||||
|
/** 게시물 수 */
|
||||||
|
private String rows;
|
||||||
|
/** 핸드폰 번호 */
|
||||||
|
private String phone;
|
||||||
|
/** 우편번호 */
|
||||||
|
private String zipNo;
|
||||||
|
/** 도로명주소 */
|
||||||
|
private String roadAddrPart;
|
||||||
|
/** 상세주소 */
|
||||||
|
private String addrDetail;
|
||||||
|
/** 생년월일 */
|
||||||
|
private String birthday;
|
||||||
|
/** 생일 년도 */
|
||||||
|
private String birth_yy;
|
||||||
|
/** 생일 월 */
|
||||||
|
private String birth_mm;
|
||||||
|
/** 생일 날짜 */
|
||||||
|
private String birth_dd;
|
||||||
|
|
||||||
public String getAuthKey() {
|
public String getAuthKey() {
|
||||||
return authKey;
|
return authKey;
|
||||||
@ -48,6 +90,66 @@ public class NlibLoginVO implements Serializable {
|
|||||||
this.authKey = authKey;
|
this.authKey = authKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getPage() {
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
public void setPage(String page) {
|
||||||
|
this.page = page;
|
||||||
|
}
|
||||||
|
public String getRows() {
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
public void setRows(String rows) {
|
||||||
|
this.rows = rows;
|
||||||
|
}
|
||||||
|
public String getPhone() {
|
||||||
|
return phone;
|
||||||
|
}
|
||||||
|
public void setPhone(String phone) {
|
||||||
|
this.phone = phone;
|
||||||
|
}
|
||||||
|
public String getZipNo() {
|
||||||
|
return zipNo;
|
||||||
|
}
|
||||||
|
public void setZipNo(String zipNo) {
|
||||||
|
this.zipNo = zipNo;
|
||||||
|
}
|
||||||
|
public String getRoadAddrPart() {
|
||||||
|
return roadAddrPart;
|
||||||
|
}
|
||||||
|
public void setRoadAddrPart(String roadAddrPart) {
|
||||||
|
this.roadAddrPart = roadAddrPart;
|
||||||
|
}
|
||||||
|
public String getAddrDetail() {
|
||||||
|
return addrDetail;
|
||||||
|
}
|
||||||
|
public void setAddrDetail(String addrDetail) {
|
||||||
|
this.addrDetail = addrDetail;
|
||||||
|
}
|
||||||
|
public String getBirthday() {
|
||||||
|
return birthday;
|
||||||
|
}
|
||||||
|
public void setBirthday(String birthday) {
|
||||||
|
this.birthday = birthday;
|
||||||
|
}
|
||||||
|
public String getBirth_yy() {
|
||||||
|
return birth_yy;
|
||||||
|
}
|
||||||
|
public void setBirth_yy(String birth_yy) {
|
||||||
|
this.birth_yy = birth_yy;
|
||||||
|
}
|
||||||
|
public String getBirth_mm() {
|
||||||
|
return birth_mm;
|
||||||
|
}
|
||||||
|
public void setBirth_mm(String birth_mm) {
|
||||||
|
this.birth_mm = birth_mm;
|
||||||
|
}
|
||||||
|
public String getBirth_dd() {
|
||||||
|
return birth_dd;
|
||||||
|
}
|
||||||
|
public void setBirth_dd(String birth_dd) {
|
||||||
|
this.birth_dd = birth_dd;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* id attribute 를 리턴한다.
|
* id attribute 를 리턴한다.
|
||||||
* @return String
|
* @return String
|
||||||
|
|||||||
@ -4,6 +4,7 @@ package nlib.user.web;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -121,4 +122,15 @@ public class LoginController
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 네이버 로그인
|
||||||
|
* @param session
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/login/naverLoginResultPopup.do")
|
||||||
|
public String naverLoginResult(HttpSession session) throws Exception{
|
||||||
|
|
||||||
|
return "nlib/popup/naverLoginResultPopup";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,20 +1,78 @@
|
|||||||
|
|
||||||
package nlib.user.web;
|
package nlib.user.web;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.ModelMap;
|
import org.springframework.ui.ModelMap;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
|
import nlib.info.service.InformService;
|
||||||
|
import nlib.restful.service.DataApiReqVO;
|
||||||
|
import nlib.restful.service.DataApiResVO;
|
||||||
import nlib.user.service.MemberService;
|
import nlib.user.service.MemberService;
|
||||||
|
import nlib.user.service.NlibLoginVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : MemberController.java
|
||||||
|
*
|
||||||
|
* @Description :
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
public class MemberController
|
public class MemberController {
|
||||||
{
|
|
||||||
@Resource(name="memberService")
|
@Resource(name="memberService")
|
||||||
private MemberService memberService;
|
private MemberService memberService;
|
||||||
|
|
||||||
|
@Resource(name="informService")
|
||||||
|
private InformService informService;
|
||||||
|
|
||||||
|
/* 이메일 메시지 및 템플릿 정보 */
|
||||||
|
//템플릿 파일경로
|
||||||
|
@Value("#{properties['mailing.sender.membership.template']}")
|
||||||
|
private String template;
|
||||||
|
|
||||||
|
//보내는 사람 이메일주소
|
||||||
|
@Value("#{properties['mailing.sender.membership.email']}")
|
||||||
|
private String senderAddr;
|
||||||
|
|
||||||
|
//보내는 사람 이름
|
||||||
|
@Value("#{properties['mailing.sender.membership.name']}")
|
||||||
|
private String senderName;
|
||||||
|
|
||||||
public ModelMap selectMemberJoiningInfo(HttpServletRequest req) {
|
public ModelMap selectMemberJoiningInfo(HttpServletRequest req) {
|
||||||
return null;
|
return null;
|
||||||
@ -24,10 +82,6 @@ public class MemberController
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModelMap insertMemberInfoForm(HttpServletRequest req) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModelMap insertMemberInfo(HttpServletRequest req) {
|
public ModelMap insertMemberInfo(HttpServletRequest req) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -68,5 +122,168 @@ public class MemberController
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value="/member/naverSignResultPopup.do")
|
||||||
|
public String naverSignResult(HttpSession session) throws Exception{
|
||||||
|
return "nlib/popup/naverSignResultPopup";
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value="/member/selectMemberJoiningInfo.do")
|
||||||
|
public String selectMemberJoiningInfo(HttpServletRequest req,ModelMap model) {
|
||||||
|
DataApiReqVO reqVO = new DataApiReqVO();
|
||||||
|
DataApiResVO resVO = new DataApiResVO();
|
||||||
|
resVO = informService.selectTermsInfo(reqVO);
|
||||||
|
System.out.println(resVO.getInfo().get("terms"));
|
||||||
|
model.addAttribute("result",resVO);
|
||||||
|
return "/nlib/member/selectMemberJoiningInfo";
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value="/member/snsCertForm.do")
|
||||||
|
public String snsCertForm(HttpSession session) throws Exception{
|
||||||
|
return "nlib/member/snsCertForm";
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value="/member/insertMemberInfoForm.do")
|
||||||
|
public String insertMemberInfoForm(NlibLoginVO vo,HttpSession session,ModelMap model ) throws Exception{
|
||||||
|
model.addAttribute("loginVO",vo);
|
||||||
|
return "nlib/member/insertMemberInfoForm";
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value="/member/insertMemberInfo.do")
|
||||||
|
public String insertMemberInfo(@RequestParam HashMap<String, Object> commandMap ) throws Exception{
|
||||||
|
DataApiReqVO reqVO = new DataApiReqVO();
|
||||||
|
reqVO.setInfo(commandMap);
|
||||||
|
|
||||||
|
// 통합시스템에 등록처리 요청 (data insert)
|
||||||
|
|
||||||
|
|
||||||
|
// 결과가 정상이면, 안내 메일 발송
|
||||||
|
// > 템플릿파일에서 내용 mailing.sender.membership.template
|
||||||
|
// > 치환 (사용자명, 이메일주소)
|
||||||
|
// > 발송처리 요청
|
||||||
|
Path path = Paths.get(template);
|
||||||
|
Charset cs = StandardCharsets.UTF_8;
|
||||||
|
List<String> list = new ArrayList<String>();
|
||||||
|
String contents = "";
|
||||||
|
try {
|
||||||
|
list = Files.readAllLines(path,cs);
|
||||||
|
}catch(IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
for(String readLine : list) {
|
||||||
|
contents+=readLine;
|
||||||
|
}
|
||||||
|
contents=contents.replaceAll("[$]\\{userName\\}","유종선");
|
||||||
|
System.out.println(contents);
|
||||||
|
return "nlib/member/insertMemberInfoResult";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 핸드폰 인증번호 발송
|
||||||
|
* @exception Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/member/phoneCertNum.ajax" , method=RequestMethod.POST)
|
||||||
|
public @ResponseBody void phoneCertNum(HttpServletResponse response,HttpServletRequest request) throws Exception{
|
||||||
|
String phone = request.getParameter("phone");
|
||||||
|
|
||||||
|
HashMap<String, Object> commandMap = new HashMap<String,Object>();
|
||||||
|
DataApiReqVO reqVO = new DataApiReqVO();
|
||||||
|
|
||||||
|
//인증번호
|
||||||
|
String CertNumber=numberGen(6,1);
|
||||||
|
|
||||||
|
commandMap.put("CertNumber",CertNumber);
|
||||||
|
|
||||||
|
reqVO.setInfo(commandMap);
|
||||||
|
|
||||||
|
System.out.println(phone);
|
||||||
|
System.out.println(CertNumber);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 핸드폰 인증번호 확인
|
||||||
|
* @exception Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/member/phoneCertNumChk.ajax" , method=RequestMethod.POST)
|
||||||
|
public @ResponseBody String phoneCertNumChk(HttpServletResponse response,HttpServletRequest request) throws Exception{
|
||||||
|
String phone = request.getParameter("phone");
|
||||||
|
String phoneCertNum = request.getParameter("phoneCertNum");
|
||||||
|
|
||||||
|
HashMap<String, Object> commandMap = new HashMap<String,Object>();
|
||||||
|
commandMap.put("phone", phone);
|
||||||
|
commandMap.put("phoneCertNum", phoneCertNum);
|
||||||
|
DataApiReqVO reqVO = new DataApiReqVO();
|
||||||
|
|
||||||
|
reqVO.setInfo(commandMap);
|
||||||
|
|
||||||
|
System.out.println(phone);
|
||||||
|
System.out.println(phoneCertNum);
|
||||||
|
|
||||||
|
return "true";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 전달된 파라미터에 맞게 난수를 생성한다
|
||||||
|
* @param len : 생성할 난수의 길이
|
||||||
|
* @param dupCd : 중복 허용 여부 (1: 중복허용, 2:중복제거)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static String numberGen(int len, int dupCd ) {
|
||||||
|
|
||||||
|
Random rand = new Random();
|
||||||
|
String numStr = ""; //난수가 저장될 변수
|
||||||
|
|
||||||
|
for(int i=0;i<len;i++) {
|
||||||
|
|
||||||
|
//0~9 까지 난수 생성
|
||||||
|
String ran = Integer.toString(rand.nextInt(10));
|
||||||
|
|
||||||
|
if(dupCd==1) {
|
||||||
|
//중복 허용시 numStr에 append
|
||||||
|
numStr += ran;
|
||||||
|
}else if(dupCd==2) {
|
||||||
|
//중복을 허용하지 않을시 중복된 값이 있는지 검사한다
|
||||||
|
if(!numStr.contains(ran)) {
|
||||||
|
//중복된 값이 없으면 numStr에 append
|
||||||
|
numStr += ran;
|
||||||
|
}else {
|
||||||
|
//생성된 난수가 중복되면 루틴을 다시 실행한다
|
||||||
|
i-=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return numStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID|비밀번호찾기 폼
|
||||||
|
* @exception Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/member/searchIdForm.do")
|
||||||
|
public String searchIdForm(HttpServletResponse response,HttpServletRequest request) throws Exception{
|
||||||
|
|
||||||
|
return "nlib/member/searchIdForm";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID 찾기
|
||||||
|
* @exception Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/member/searchId.do")
|
||||||
|
public String searchId(HttpServletResponse response,HttpServletRequest request) throws Exception{
|
||||||
|
System.out.println(request.getAttribute("name"));
|
||||||
|
System.out.println(request.getAttribute("searchIdPhoneNum"));
|
||||||
|
return "nlib/member/searchIdResult";
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 비밀번호 찾기
|
||||||
|
* @exception Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/member/initPassword.do")
|
||||||
|
public String initPassword(HttpServletResponse response,HttpServletRequest request) throws Exception{
|
||||||
|
System.out.println(request.getAttribute("username"));
|
||||||
|
System.out.println(request.getAttribute("initPasswordPhoneNum"));
|
||||||
|
return "nlib/member/initPassword";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
77
src/main/java/nlib/user/web/userInfoController.java
Normal file
77
src/main/java/nlib/user/web/userInfoController.java
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
|
||||||
|
package nlib.user.web;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.springframework.security.core.Authentication;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.ModelMap;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import nlib.restful.service.DataApiReqVO;
|
||||||
|
import nlib.security.SecUserVO;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : userInfoController.java
|
||||||
|
*
|
||||||
|
* @Description : 회원 정보 controller
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 14. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 14.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
public class userInfoController {
|
||||||
|
/**
|
||||||
|
* 내 정보 조회
|
||||||
|
* @exception Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/userInfo/getMyInfo.do")
|
||||||
|
public String getMyInfo(HttpServletResponse response,HttpServletRequest request) throws Exception{
|
||||||
|
return "nlib/userInfo/getMyInfo";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 내 정보 수정
|
||||||
|
* @exception Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/userInfo/putMyInfo.do")
|
||||||
|
public String putMyInfo(HttpServletResponse response,HttpServletRequest request,Authentication authentication,ModelMap model) throws Exception{
|
||||||
|
SecUserVO vo=(SecUserVO) authentication.getPrincipal();
|
||||||
|
|
||||||
|
HashMap map = new HashMap();
|
||||||
|
map.put("id", vo.getId());
|
||||||
|
|
||||||
|
//회원 ID로 회원의 정보를 조회해온다.
|
||||||
|
DataApiReqVO reqvo=new DataApiReqVO();
|
||||||
|
reqvo.setInfo(map);
|
||||||
|
|
||||||
|
model.addAttribute("result",vo);
|
||||||
|
return "nlib/userInfo/putMyInfo";
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 내 정보 수정 전 password 인증
|
||||||
|
* @exception Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/userInfo/pwCertMyInfo.do")
|
||||||
|
public String pwCertMyInfo(HttpServletResponse response,HttpServletRequest request) throws Exception{
|
||||||
|
return "nlib/userInfo/pwCertMyInfo";
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -33,3 +33,7 @@ dataapi.temp.xml.path = C:/iams/workspace/nlib/data/dataxml
|
|||||||
# Aria \uc54c\uace0\ub9ac\uc998
|
# Aria \uc54c\uace0\ub9ac\uc998
|
||||||
crypto.aria.defaultKey = TheFederationOfKoreaCultureCenter027042322
|
crypto.aria.defaultKey = TheFederationOfKoreaCultureCenter027042322
|
||||||
|
|
||||||
|
# \uba54\uc77c \uc815\ubcf4
|
||||||
|
mailing.sender.membership.template = C:/iams/workspace/nlib/src/main/webapp/mail_template.html
|
||||||
|
mailing.sender.membership.email = no-reply@nlib.org
|
||||||
|
mailing.sender.membership.name = Nlib
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
<%
|
<%
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* @Class Name : getSampleInfo.jsp
|
* @Class Name : loginForm.jsp
|
||||||
*
|
*
|
||||||
* @Description : RESTful API 호출 샘플
|
* @Description : 로그인폼
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
@ -13,11 +13,11 @@
|
|||||||
* @ ------------ -------- ---------------------------
|
* @ ------------ -------- ---------------------------
|
||||||
* @ 수정일 수정자 수정내용
|
* @ 수정일 수정자 수정내용
|
||||||
* @ ------------ -------- ---------------------------
|
* @ ------------ -------- ---------------------------
|
||||||
* @ 2021. 6. 15. KNKIM 최초 생성
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
* @since 2021. 6. 15.
|
* @since 2021. 7. 12.
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -33,38 +33,135 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>${pageTitle}</title>
|
<title>LoginTest</title>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta name ="google-signin-client_id" content="879126511006-jro7bld7b2epl3n5mkksp0p24k2inbpu.apps.googleusercontent.com">
|
||||||
|
<script type="text/javascript" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" charset="utf-8"></script>
|
||||||
<script src="/js/jquery/jquery.min.js"></script>
|
<script src = "//developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||||
<script src="/js/cmm/nlib.js"></script>
|
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
||||||
|
<script>
|
||||||
<script type="text/javaScript" language="javascript">
|
function actionLogin() {
|
||||||
|
if (document.loginForm.username.value =="") {
|
||||||
</script>
|
alert("아이디를 입력하세요"); <%-- 아이디를 입력하세요 --%>
|
||||||
|
} else if (document.loginForm.password.value =="") {
|
||||||
|
alert("비밀번호를 입력하세요"); <%-- 비밀번호를 입력하세요 --%>
|
||||||
|
} else {
|
||||||
|
document.loginForm.action="<c:url value='/nlib/login/login.do'/>";
|
||||||
|
//document.loginForm.j_username.value = document.loginForm.userSe.value + document.loginForm.username.value;
|
||||||
|
//document.loginForm.action="<c:url value='/j_spring_security_check'/>";
|
||||||
|
document.loginForm.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.snsLogin = function(email){
|
||||||
|
$("#username").val(email);
|
||||||
|
$("#password").val("password");
|
||||||
|
var f=document.loginForm;
|
||||||
|
f.action="/nlib/login/login.do";
|
||||||
|
f.submit();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
로그인<br>
|
||||||
|
<form id="loginForm" name="loginForm" method="post">
|
||||||
|
<div>ID <input type="text" id="username" name="username" placeholder="아이디(이메일)"></div>
|
||||||
|
<div>PW <input type="password" id="password" name="password" placeholder="비밀번호"></div>
|
||||||
|
<input type="button" class="btn_login" value="로그인" onclick="actionLogin()"> <!-- 로그인 -->
|
||||||
|
|
||||||
<h2> 로그인 페이지입니다.</h2>
|
<div id = "naver_id_login"></div>
|
||||||
<p> error: <c:out value="${error }"></c:out> </p>
|
|
||||||
<p> logout: <c:out value="${logout }"></c:out> </p>
|
|
||||||
|
|
||||||
<!-- 실제로 로그인 작업처리는 /login 에서 해줘야하고 post방식으로 보내주어야 한다. -->
|
<a id="kakao-login-btn"></a>
|
||||||
<form action="${pageContext.request.contextPath}/login/login.do" method="post">
|
<a href="http://developers.kakao.com/logout"></a>
|
||||||
<!-- name속성은 username으로 -->
|
<ul>
|
||||||
<div>
|
<li id="GgCustomLogin">
|
||||||
<input type='text' id="username" name='username' value='admin@digitalship.coom'>
|
<a href="javascript:void(0)">
|
||||||
</div>
|
<span>Login with Google</span>
|
||||||
<div>
|
</a>
|
||||||
<input type='password' id="username" name='password' value='password'>
|
</li>
|
||||||
</div>
|
</ul>
|
||||||
<div>
|
<a href="/nlib/member/selectMemberJoiningInfo.do">회원가입</a> <!-- 회원가입 -->
|
||||||
<button id="login" onclick="javascript:login();">Login</button>
|
<a href="/nlib/member/searchIdForm.do">ID|비밀번호찾기</a> <!-- 회원가입 -->
|
||||||
</div>
|
<input type="hidden" name="authKey" id="authKey" value="yjhOJW0gKZ13f0/mofcEeA==" /> <br />
|
||||||
</form>
|
<input type="hidden" name="page" id="page" value="1" /> <br />
|
||||||
|
<input type="hidden" name="rows" id="rows" value="10" /> <br />
|
||||||
|
<input type="hidden" id="email" name="email" value="" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
//----------네이버--------------
|
||||||
|
var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/nlib/login/naverLoginResultPopup.do"); // Client ID, CallBack URL 삽입
|
||||||
|
// 단 'localhost'가 포함된 CallBack URL
|
||||||
|
var state = naver_id_login.getUniqState();
|
||||||
|
|
||||||
|
naver_id_login.setButton("green", 4, 40);
|
||||||
|
naver_id_login.setDomain("http://www.example.com/nlib/login/loginForm.do"); // URL
|
||||||
|
naver_id_login.setState(state);
|
||||||
|
naver_id_login.setPopup();
|
||||||
|
naver_id_login.init_naver_id_login();
|
||||||
|
//----------네이버--------------
|
||||||
|
|
||||||
|
//----------카카오--------------
|
||||||
|
Kakao.init('c449bf78ccf8dc336e43694099a1f4da'); //아까 카카오개발자홈페이지에서 발급받은 자바스크립트 키를 입력함
|
||||||
|
//카카오 로그인 버튼을 생성합니다.
|
||||||
|
Kakao.Auth.createLoginButton({
|
||||||
|
container: '#kakao-login-btn',
|
||||||
|
success: function(authObj) {
|
||||||
|
Kakao.API.request({
|
||||||
|
|
||||||
|
url: '/v2/user/me',
|
||||||
|
|
||||||
|
success: function(res) {
|
||||||
|
//onsole.log(res.id);//<---- 콘솔 로그에 id 정보 출력(id는 res안에 있기 때문에 res.id 로 불러온다)
|
||||||
|
//console.log(res.kakao_account.email);//<---- 콘솔 로그에 email 정보 출력 (어딨는지 알겠죠?)
|
||||||
|
//console.log(authObj.access_token);//<---- 콘솔 로그에 토큰값 출력
|
||||||
|
//로그인으로 타야함
|
||||||
|
snsLogin(res.kakao_account.email);
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: function(error) {
|
||||||
|
alert(JSON.stringify(error));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//----------카카오--------------
|
||||||
|
//----------구글---------------
|
||||||
|
//처음 실행하는 함수
|
||||||
|
function init() {
|
||||||
|
gapi.load('auth2', function() {
|
||||||
|
gapi.auth2.init();
|
||||||
|
options = new gapi.auth2.SigninOptionsBuilder();
|
||||||
|
options.setPrompt('select_account');
|
||||||
|
// 추가는 Oauth 승인 권한 추가 후 띄어쓰기 기준으로 추가
|
||||||
|
options.setScope('email profile openid https://www.googleapis.com/auth/user.birthday.read');
|
||||||
|
// 인스턴스의 함수 호출 - element에 로그인 기능 추가
|
||||||
|
// GgCustomLogin은 li태그안에 있는 ID, 위에 설정한 options와 아래 성공,실패시 실행하는 함수들
|
||||||
|
gapi.auth2.getAuthInstance().attachClickHandler('GgCustomLogin', options, onSignIn, onSignInFailure);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function onSignIn(googleUser) {
|
||||||
|
var access_token = googleUser.getAuthResponse().access_token
|
||||||
|
$.ajax({
|
||||||
|
// people api를 이용하여 프로필 및 생년월일에 대한 선택동의후 가져온다.
|
||||||
|
url: 'https://people.googleapis.com/v1/people/me'
|
||||||
|
// key에 자신의 API 키를 넣습니다.
|
||||||
|
, data: {personFields:'emailAddresses', key:'AIzaSyCmVKytZ2Ea6x1Em-iXPkah29LSq6ELH1M', 'access_token': access_token}
|
||||||
|
, method:'GET'
|
||||||
|
})
|
||||||
|
.done(function(e){
|
||||||
|
//프로필을 가져온다.
|
||||||
|
//snsLogin(profile.pu);
|
||||||
|
snsLogin(e.emailAddresses[0].value);
|
||||||
|
})
|
||||||
|
.fail(function(e){
|
||||||
|
console.log(e);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function onSignInFailure(t){
|
||||||
|
console.log(t);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
27
src/main/webapp/WEB-INF/jsp/nlib/login/mailSend.jsp
Normal file
27
src/main/webapp/WEB-INF/jsp/nlib/login/mailSend.jsp
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>Insert title here</title>
|
||||||
|
<%@ include file="../include/header.jsp" %>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<%@ include file="../include/admin_menu.jsp" %>
|
||||||
|
<h2>이메일 보내기</h2>
|
||||||
|
<form method="post" action="${path}/email/send.do">
|
||||||
|
<!-- post방식으로 자료를 컨트롤러로 보냄 -->
|
||||||
|
|
||||||
|
발신자 이름 : <input name="senderName"><br>
|
||||||
|
발신자 이메일 : <input name="senderMail"><br>
|
||||||
|
수신자 이메일 : <input name="receiveMail"><br>
|
||||||
|
제목 : <input name="subject"><br>
|
||||||
|
내용 : <textarea rows="5" cols="80" name="message"></textarea>
|
||||||
|
<br>
|
||||||
|
<input type="submit" value="전송">
|
||||||
|
</form>
|
||||||
|
<span style="color:red;">${message}</span>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : initPasswordResult.jsp
|
||||||
|
*
|
||||||
|
* @Description : 비밀번호 찾기 결과
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>Insert title here</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
비밀번호찾기 결과페이지
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
514
src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp
Normal file
514
src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp
Normal file
@ -0,0 +1,514 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : insertMemberInfoForm.jsp
|
||||||
|
*
|
||||||
|
* @Description : 회원가입폼
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>${pageTitle} <spring:message code="title.create" /></title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
||||||
|
<script type="text/javaScript" language="javascript" defer="defer">
|
||||||
|
|
||||||
|
function goPopup(){
|
||||||
|
// 주소검색을 수행할 팝업 페이지를 호출합니다.
|
||||||
|
// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다.
|
||||||
|
var pop = window.open("/nlib/popup/jusoPopup.do","pop","width=570,height=420, scrollbars=yes, resizable=yes");
|
||||||
|
|
||||||
|
// 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다.
|
||||||
|
//var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes");
|
||||||
|
}
|
||||||
|
$(document).ready(function() {
|
||||||
|
<%
|
||||||
|
//핸드폰 번호가 변하는것 실시간 감지
|
||||||
|
%>
|
||||||
|
$("#phone").on("propertychange change keyup paste input", function() {
|
||||||
|
$("#phoneCertYn").val("N");
|
||||||
|
});
|
||||||
|
})
|
||||||
|
<%
|
||||||
|
//핸드폰 인증번호 받기
|
||||||
|
%>
|
||||||
|
function phoneCert(){
|
||||||
|
|
||||||
|
|
||||||
|
$("#phone").val($("#phone").val().replace(/-/gi,""));
|
||||||
|
var regExp = /^\d{3}\d{3,4}\d{4}$/;
|
||||||
|
|
||||||
|
if(!regExp.test($("#phone").val()) || $("#phone").val()==""){
|
||||||
|
|
||||||
|
alert("형식에 맞지 않는 번호입니다.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url : "/nlib/member/phoneCertNum.ajax",
|
||||||
|
type : "POST",
|
||||||
|
async: false,
|
||||||
|
data : {"phone" : $("#phone").val()},
|
||||||
|
success : function(result){
|
||||||
|
alert("인증번호가 발송됐습니다.");
|
||||||
|
//인증번호 확인창
|
||||||
|
$("#phoneCertForm").css("display","block")
|
||||||
|
|
||||||
|
},error : function(){
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
<%
|
||||||
|
//핸드폰 인증번호 확인
|
||||||
|
%>
|
||||||
|
function certNumCheck(){
|
||||||
|
<%
|
||||||
|
//ajax 사용자가 입력한 번호를 보내 RESTfull server에서 확인 success or fail 반환 (3분이내인지도)
|
||||||
|
%>
|
||||||
|
$.ajax({
|
||||||
|
url : "/nlib/member/phoneCertNumChk.ajax",
|
||||||
|
type : "POST",
|
||||||
|
data : {"phoneCertNum" : $("#phoneCertNum").val(),
|
||||||
|
"phone" : $("#phone").val()},
|
||||||
|
async: false,
|
||||||
|
success : function(result){
|
||||||
|
if(result=="true")
|
||||||
|
{
|
||||||
|
alert("인증되었습니다.");
|
||||||
|
$("#phoneCertYn").val("Y");
|
||||||
|
}else{
|
||||||
|
alert("인증에 실패했습니다.");
|
||||||
|
}
|
||||||
|
},error : function(){
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function jusoCallBack(zipNo,roadAddrPart,addrDetail){
|
||||||
|
// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
|
||||||
|
$("#zipNo").val(zipNo);
|
||||||
|
$("#roadAddrPart").val(roadAddrPart);
|
||||||
|
$("#addrDetail").val(addrDetail);
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('keydown', function(event) {
|
||||||
|
if (event.keyCode === 13) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
function checkBirthday() {
|
||||||
|
var birthday;
|
||||||
|
var yy = $("#birth_yy").val();
|
||||||
|
var mm = $("#birth_mm option:selected").val();
|
||||||
|
var dd = $("#birth_dd").val();
|
||||||
|
var lang = "ko_KR";
|
||||||
|
|
||||||
|
var oyy = $("#birth_yy");
|
||||||
|
var omm = $("#birth_mm");
|
||||||
|
var odd = $("#birth_dd");
|
||||||
|
|
||||||
|
if (mm.length == 1) {
|
||||||
|
mm = "0" + mm;
|
||||||
|
}
|
||||||
|
if (dd.length == 1) {
|
||||||
|
dd = "0" + dd;
|
||||||
|
}
|
||||||
|
|
||||||
|
birthday = yy + mm + dd;
|
||||||
|
if (!isValidDate(birthday)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var age = calcAge(birthday);
|
||||||
|
if (age < 0) {
|
||||||
|
return false;
|
||||||
|
} else if (age >= 120) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isValidDate(param) {
|
||||||
|
try {
|
||||||
|
param = param.replace(/-/g, '');
|
||||||
|
|
||||||
|
// 자리수가 맞지않을때
|
||||||
|
if (isNaN(param) || param.length != 8) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var year = Number(param.substring(0, 4));
|
||||||
|
var month = Number(param.substring(4, 6));
|
||||||
|
var day = Number(param.substring(6, 8));
|
||||||
|
|
||||||
|
if (month < 1 || month > 12) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var maxDaysInMonth = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
|
||||||
|
var maxDay = maxDaysInMonth[month - 1];
|
||||||
|
|
||||||
|
// 윤년 체크
|
||||||
|
if (month == 2 && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)) {
|
||||||
|
maxDay = 29;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (day <= 0 || day > maxDay) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
function calcAge(birth) {
|
||||||
|
var date = new Date();
|
||||||
|
var year = date.getFullYear();
|
||||||
|
var month = (date.getMonth() + 1);
|
||||||
|
var day = date.getDate();
|
||||||
|
if (month < 10)
|
||||||
|
month = '0' + month;
|
||||||
|
if (day < 10)
|
||||||
|
day = '0' + day;
|
||||||
|
var monthDay = month + '' + day;
|
||||||
|
|
||||||
|
birth = birth.replace('-', '').replace('-', '');
|
||||||
|
var birthdayy = birth.substr(0, 4);
|
||||||
|
var birthdaymd = birth.substr(4, 4);
|
||||||
|
|
||||||
|
var age = monthDay < birthdaymd ? year - birthdayy - 1 : year - birthdayy;
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
body {
|
||||||
|
|
||||||
|
padding-top:0px;
|
||||||
|
|
||||||
|
margin-top:0px;
|
||||||
|
|
||||||
|
background-color:#f5f5f5;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
|
||||||
|
padding-top:0px;
|
||||||
|
|
||||||
|
margin-top:0px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.form-horizontal .control-label.text-left{
|
||||||
|
|
||||||
|
text-align:left;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.form-horizontal .form-group {
|
||||||
|
|
||||||
|
height:50px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
h3 span.ok {
|
||||||
|
|
||||||
|
color:#01A9DB;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
label.error {
|
||||||
|
|
||||||
|
font-family:"돋움", Dotum, "Apple SD Gothic Neo", Helvetica, Sans-serif;
|
||||||
|
|
||||||
|
font-size:9pt;
|
||||||
|
|
||||||
|
font-weight:600;
|
||||||
|
|
||||||
|
padding:3px 0 0 10px;
|
||||||
|
|
||||||
|
color:#FF0000;
|
||||||
|
|
||||||
|
display:block;
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="wrap">
|
||||||
|
<br><br>
|
||||||
|
<b><font size="6" color="gray">회원가입</font></b>
|
||||||
|
<br><br><br>
|
||||||
|
|
||||||
|
<form id="joinForm" name="joinForm" action="/member/insertMemberInfo.do" method="post">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td id="title">아이디</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="id" name="id" maxlength="30" value=<c:out value="${loginVO.id}"/> class="required">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td id="title">비밀번호</td>
|
||||||
|
<td>
|
||||||
|
<input type="password" id="password" name="password">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td id="title">비밀번호 확인</td>
|
||||||
|
<td>
|
||||||
|
<input type="password" id="passwordConfirm" name="passwordConfirm">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td id="title">이름</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="name" name="name" maxlength="40" value=<c:out value="${loginVO.name}"/>>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="title">생일</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="birth_yy" name="birth_yy" maxlength="4" placeholder="년(4자)" size="6" value=<c:out value="${loginVO.birth_yy}"/> >
|
||||||
|
<select id="birth_mm" name="birth_mm" value=<c:out value="${loginVO.birth_mm}"/>>
|
||||||
|
<option value="">월</option>
|
||||||
|
<option value="01" >1</option>
|
||||||
|
<option value="02" >2</option>
|
||||||
|
<option value="03" >3</option>
|
||||||
|
<option value="04" >4</option>
|
||||||
|
<option value="05" >5</option>
|
||||||
|
<option value="06" >6</option>
|
||||||
|
<option value="07" >7</option>
|
||||||
|
<option value="08" >8</option>
|
||||||
|
<option value="09" >9</option>
|
||||||
|
<option value="10" >10</option>
|
||||||
|
<option value="11" >11</option>
|
||||||
|
<option value="12" >12</option>
|
||||||
|
</select>
|
||||||
|
<input type="text" id="birth_dd" name="birth_dd" maxlength="2" placeholder="일" size="4" value=<c:out value="${loginVO.birth_dd}"/>>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="title">휴대전화</td>
|
||||||
|
<td id="Cert">
|
||||||
|
<input type="text" id="phone" name="phone" value=<c:out value="${loginVO.phone}"/>><button type="button" style="text-align:left;" class="btn-warning" onclick="phoneCert()">인증번호 받기</button>
|
||||||
|
<div id="phoneCertForm" style="display:none;"><br><input type='text' id='phoneCertNum' name='phoneCertNum'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certNumCheck()'>인증번호 확인</button></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="title">주소</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="zipNo" name="zipNo" readonly><button type="button" style="text-align:left;" class="btn-warning" onclick="goPopup()">주소검색</button><br>
|
||||||
|
<input type="text" id="roadAddrPart" name="roadAddrPart" readonly><input type="text" id="addrDetail" name="addrDetail" readonly>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
<input type="hidden" id="phoneCertYn" name="phoneCertYn" value=<c:out value="N"/>>
|
||||||
|
<input type="submit" value="가입"/> <input type="button" value="취소">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
// Form값 유효성 체크 , script가 head가 아닌 body에 포함되어야함
|
||||||
|
// - UserId : 9~50자 이메일 형식(regx:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/)
|
||||||
|
// - NickName : 한글 2~10자, 영숫자 4~20자 조합(4바이트 이상 20바이트 이하)
|
||||||
|
// - Password : 8~16자 영문, 숫자, 특수문자 조합
|
||||||
|
// - ConfirmPassword : 8~16자 영문, 숫자, 특수문자 조합(비밀번호 확인)
|
||||||
|
|
||||||
|
|
||||||
|
/* jquery validation 플러그인 옵션
|
||||||
|
|
||||||
|
debug : true일 경우 validation 후 submit을 수행하지 않음. (default: false)
|
||||||
|
onfocusout : onblur 시 해당항목을 validation 할 것인지 여부 (default: true)
|
||||||
|
rules : 각 항목별로 validation rule을 지정한다.
|
||||||
|
messages : rules에서 정의된 조건으로 validation에 실패했을 때 화면에 표시할 메시지를 지정한다.
|
||||||
|
errorPlacement : validator는 기본적으로 validation 실패 시 실패한 노드 우측에 실패 메시지를 표시하게 되어있다. 작동을 원하지 않으면 내용이 없는 errorPlacement를 선언한다.
|
||||||
|
invalidHandler : validation 실패 시의 핸들러를 정의한다.
|
||||||
|
submitHandler : 유효성 검사가 완료된 뒤 수행할 핸들러를 정의한다. 주의 할 점은 이 옵션을 명시할 경우 'submit' 이벤트만 발생하며 실제 FORM 전송은 일어나지 않는다는 것이다. 만약 submitHandler를 명시하지 않으면 유효성 검사 후 온전한 submit을 수행한다.
|
||||||
|
*/
|
||||||
|
$("#joinForm").validate({
|
||||||
|
focusCleanup: true, //true이면 잘못된 필드에 포커스가 가면 에러를 지움
|
||||||
|
focusInvalid:false, //유효성 검사후 포커스를 무효필드에 둠 꺼놓음
|
||||||
|
onclick: false, //클릭시 발생됨 꺼놓음
|
||||||
|
onfocusout:false, //포커스가 아웃되면 발생됨 꺼놓음
|
||||||
|
onkeyup:false, //키보드 키가 올라가면 발생됨 꺼놓음
|
||||||
|
/* rules 속성값
|
||||||
|
required : 입력 필수 항목설정. text, password, select, radio, checkbox type에 사용된다. ex) required : true
|
||||||
|
remote : 외부 URL을 이용한 validation이 필요한 경우 사용한다.
|
||||||
|
equalTo : 다른 FORM 항목과 동일한 값인지 체크한다.
|
||||||
|
minlength : 최소 길이 체크. ex) minlength : 3
|
||||||
|
maxlength : 최대 길이 체크. ex) maxlength : 10
|
||||||
|
rangelength : 길이 범위 체크. ex) rangelength : [2, 6] (2글자 이상 6글자 이하)
|
||||||
|
min : 숫자의 최소값 체크. ex) min : 13 (13보다 작을 경우 false)
|
||||||
|
max : 숫자의 최대값 체크. ex) max : 5 (5보다 클 경우 false)
|
||||||
|
range : 숫자의 범위 체크. ex) range : [13, 24] (13보다 작거나 24보다 클 경우 false)
|
||||||
|
email : 이메일 형식의 값인지 체크. ex) email : true
|
||||||
|
url : 유효한 url 형식인지 체크. ex) url : true
|
||||||
|
date : 유효한 날짜 형식의 값인지 체크
|
||||||
|
dateISO : 유효한 국제표준 날짜 형식인지 체크. ex) dateISO : true
|
||||||
|
number : 유효한 숫자인지 체크. ex) number : true
|
||||||
|
digits : 유효한 digit 값인지 체크. number와 다른점은 양의 정수만 허용한다. 즉, 소수와 음수일 경우 false
|
||||||
|
creditcard : 유효한 카드번호 형식인지 체크. 공식페이지에서는 creditcard rule을 그대로 적용하지 말고 현지 사정에 맞게 수정하라고 권장한다. ex) creditcard : true
|
||||||
|
*/
|
||||||
|
rules : {
|
||||||
|
id : { minlength:9, maxlength:50, email:true},
|
||||||
|
password : {required:true, minlength:8, maxlength:16, regx:/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@@#$%^&+=]).*$/},
|
||||||
|
passwordConfirm : {required:true, equalTo:"#password"},
|
||||||
|
name : {required:true},
|
||||||
|
birth_yy : {required:true,regx:/^(19|20)\d{2}$/,dateCheck:"날짜체크"},
|
||||||
|
birth_mm : {required:true},
|
||||||
|
birth_dd : {required:true},
|
||||||
|
phone : {required:true,regx:/^\d{3}\d{3,4}\d{4}$/,regx2:"인증체크"},
|
||||||
|
zipNo : {required:true},
|
||||||
|
roadAddrPart : {required:true},
|
||||||
|
addrDetail : {required:true}
|
||||||
|
|
||||||
|
/* NickName : {required:true, minbytelength:4, maxbytelength:20, regx:/^[ㄱ-ㅎ|가-힣|a-z|A-Z|0-9|\*]+$/},
|
||||||
|
|
||||||
|
Password : {required:true, minlength:8, maxlength:16, regx:/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@@#$%^&+=]).*$/},
|
||||||
|
|
||||||
|
ConfirmPassword : {required:true, equalTo:"#Password"} */
|
||||||
|
},
|
||||||
|
messages : {
|
||||||
|
id : {required:"필수 정보입니다.", minlength:jQuery.validator.format("최소 {0}자 이상을 입력하세요."), maxlength:jQuery.validator.format("최대 {0}자 이하"), email:"형식에 맞지 않는 이메일입니다."},
|
||||||
|
password : {required:"필수 정보입니다." ,minlength:jQuery.validator.format("최소 {0}자 이상을 입력하세요."), maxlength:jQuery.validator.format("최대 {0}자 이하"), regx:"8~16자 영문 , 숫자, 특수문자를 사용하세요."},
|
||||||
|
passwordConfirm : {required:"필수 정보입니다." ,equalTo:"입력한 비밀번호가 서로 일치하지 않습니다."},
|
||||||
|
name : {required:"필수 정보입니다."},
|
||||||
|
birth_yy : {required:"필수 정보입니다.",regx:"형식에 맞지 않는 년도입니다.",dateCheck:"생년월일을 다시 확인해주세요."},
|
||||||
|
birth_mm : {required:"필수 정보입니다."},
|
||||||
|
birth_dd : {required:"필수 정보입니다."},
|
||||||
|
phone : {required:"필수 정보입니다.", regx:"형식에 맞지 않는 번호입니다.", regx2:"인증이 필요합니다." },
|
||||||
|
zipNo : {required:"필수 정보입니다."},
|
||||||
|
roadAddrPart : {required:"필수 정보입니다."},
|
||||||
|
addrDetail : {required:"필수 정보입니다."}
|
||||||
|
/* NickName : {required:"닉네임 필드가 필요합니다.", minbytelength:jQuery.validator.format("최소 {0}바이트 이상(한글 2자, 영숫자 4자)"), maxbytelength:jQuery.validator.format("최대 {0}바이트 이하(한글 10자, 영숫자 20자)"), regx:"닉네임 형식이 잘못되었습니다."},
|
||||||
|
|
||||||
|
Password : {required:"비밀번호 필드가 필요합니다.", minlength:jQuery.validator.format("최소 {0}자 이상을 입력하세요"), maxlength:jQuery.validator.format("최대 {0}자 이하"), regx:"비밀번호 형식이 잘못되었습니다."},
|
||||||
|
|
||||||
|
ConfirmPassword : {required:"비밀번호 확인 필드가 필요합니다.", equalTo:"입력한 비밀번호가 서로 일치하지 않습니다."} */
|
||||||
|
},
|
||||||
|
|
||||||
|
/*errorPlacement: function(error, element) {
|
||||||
|
|
||||||
|
},*/
|
||||||
|
/* invalidHandler : function(form, validator) {
|
||||||
|
var errors = validator.numberOfInvalids();
|
||||||
|
if( errors )
|
||||||
|
{
|
||||||
|
validator.errorList[0].element.focus();
|
||||||
|
}
|
||||||
|
}, */
|
||||||
|
submitHandler: function(form) {
|
||||||
|
document.joinForm.action="/nlib/member/insertMemberInfo.do";
|
||||||
|
document.joinForm.submit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
/*jquery.validate_add.js에 삽입되어야 할것들 새로운 규칙을 커스텀마이징 할수있음. */
|
||||||
|
//정규식을 적용
|
||||||
|
$.validator.addMethod("regx", function(value, element, regexpr) {
|
||||||
|
return regexpr.test(value);
|
||||||
|
});
|
||||||
|
|
||||||
|
$.validator.addMethod("dateCheck", function(value, element, param) {
|
||||||
|
return checkBirthday();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$.validator.addMethod("regx2", function(value, element, regexpr) {
|
||||||
|
if($("#phoneCertYn").val()=='Y')
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 한글, 영어를 체크하여 계산된 바이트 길이를 최소 길이와 비교
|
||||||
|
$.validator.addMethod('minbytelength', function (value, element, param) {
|
||||||
|
var nMin = param;
|
||||||
|
var nBytes = $.type(value) !== "string" ? 0 : value.getByteLength(); // 문자열의 Byte 길이를 반환(한글은 2byte이며 영숫자는 1byte)
|
||||||
|
|
||||||
|
return this.optional(element) || (nBytes === 0 || nBytes >= nMin);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 한글, 영어를 체크하여 계산된 바이트 길이를 최대 길이와 비교
|
||||||
|
$.validator.addMethod('maxbytelength', function (value, element, param) {
|
||||||
|
var nMax = param;
|
||||||
|
var nBytes = $.type(value) !== "string" ? 0 : value.getByteLength(); // 문자열의 Byte 길이를 반환(한글은 2byte이며 영숫자는 1byte)
|
||||||
|
return this.optional(element) || (nBytes === 0 || nBytes <= nMax);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 한글, 영어를 체크하여 계산된 바이트 길이를 최소 길이와 최대 길이 비교
|
||||||
|
|
||||||
|
$.validator.addMethod('bytelength', function (value, element, params) {
|
||||||
|
var nMin = params.min;
|
||||||
|
var nMax = params.max;
|
||||||
|
var nBytes = $.type(value) !== "string" ? 0 : value.getByteLength(); // 문자열의 Byte 길이를 반환(한글은 2byte이며 영숫자는 1byte)
|
||||||
|
|
||||||
|
return this.optional(element) || (nBytes === 0 || (nBytes >= nMin && nBytes <= nMax));
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : insertMemberInfoResult.jsp
|
||||||
|
*
|
||||||
|
* @Description : 회원가입 결과
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>Insert title here</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
환영합니다
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
76
src/main/webapp/WEB-INF/jsp/nlib/member/searchIdForm.jsp
Normal file
76
src/main/webapp/WEB-INF/jsp/nlib/member/searchIdForm.jsp
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : searchIdForm.jsp
|
||||||
|
*
|
||||||
|
* @Description : ID 비밀번호 찾기
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>Insert title here</title>
|
||||||
|
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
||||||
|
<script>
|
||||||
|
function goFindId(){
|
||||||
|
$("#searchIdPhoneNum").val($("#searchIdPhoneNum").val().replace(/-/gi,""));
|
||||||
|
var regExp = /^\d{3}\d{3,4}\d{4}$/;
|
||||||
|
|
||||||
|
if(!regExp.test($("#searchIdPhoneNum").val()) || $("#searchIdPhoneNum").val()==""){
|
||||||
|
|
||||||
|
alert("형식에 맞지 않는 번호입니다.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.findId.action="/nlib/member/searchId.do";
|
||||||
|
document.findId.submit();
|
||||||
|
}
|
||||||
|
function goFindPw(){
|
||||||
|
$("#initPasswordPhoneNum").val($("#initPasswordPhoneNum").val().replace(/-/gi,""));
|
||||||
|
var regExp = /^\d{3}\d{3,4}\d{4}$/;
|
||||||
|
|
||||||
|
if(!regExp.test($("#initPasswordPhoneNum").val()) || $("#initPasswordPhoneNum").val()==""){
|
||||||
|
|
||||||
|
alert("형식에 맞지 않는 번호입니다.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.findPw.action="/nlib/member/initPassword.do";
|
||||||
|
document.findPw.submit();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>아이디 찾기</h1>
|
||||||
|
<form id="findId" name="findId" method="post">
|
||||||
|
이름 <input type="text" id="name" name="name">
|
||||||
|
핸드폰 번호 <input type="text" id="searchIdPhoneNum" name="searchIdPhoneNum">
|
||||||
|
<input type="button" onclick ="goFindId();" value="아이디 찾기">
|
||||||
|
</form>
|
||||||
|
<form id="findPw" name="findPw" method="post">
|
||||||
|
<h1>비밀번호 찾기</h1>
|
||||||
|
ID <input type="text" id="username" name="username">
|
||||||
|
핸드폰 번호 <input type="text" id="initPasswordPhoneNum" name="initPasswordPhoneNum">
|
||||||
|
<input type="button" onclick ="goFindPw();" value="임시비밀번호 받기">
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
37
src/main/webapp/WEB-INF/jsp/nlib/member/searchIdResult.jsp
Normal file
37
src/main/webapp/WEB-INF/jsp/nlib/member/searchIdResult.jsp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : searchIdResult.jsp
|
||||||
|
*
|
||||||
|
* @Description : 아이디 찾기 결과
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>Insert title here</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
아이디찾기 결과페이지
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : selectMemberJoiningInfo.jsp
|
||||||
|
*
|
||||||
|
* @Description : 회원가입 이용약관
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
|
||||||
|
<title>Insert title here</title>
|
||||||
|
<script>
|
||||||
|
function snsCertForm(){
|
||||||
|
if(document.getElementById('agree').checked)
|
||||||
|
{
|
||||||
|
location.href="/nlib/member/snsCertForm.do";
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
alert("약관에 동의해주세요");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
${result.info["terms"]}
|
||||||
|
<input type="checkbox" id="agree">동의
|
||||||
|
<input type="button" value="다음" onclick="snsCertForm();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
180
src/main/webapp/WEB-INF/jsp/nlib/member/snsCertForm.jsp
Normal file
180
src/main/webapp/WEB-INF/jsp/nlib/member/snsCertForm.jsp
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : snsCertForm.jsp
|
||||||
|
*
|
||||||
|
* @Description : 회원가입 SNS 인증
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : snsCertForm.jsp
|
||||||
|
*
|
||||||
|
* @Description : 회원가입시 sns인증
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>LoginTest</title>
|
||||||
|
<meta name ="google-signin-client_id" content="879126511006-jro7bld7b2epl3n5mkksp0p24k2inbpu.apps.googleusercontent.com">
|
||||||
|
<script type="text/javascript" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" charset="utf-8"></script>
|
||||||
|
<script src = "//developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||||
|
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
||||||
|
<script>
|
||||||
|
window.snsLogin = function(){
|
||||||
|
|
||||||
|
var f=document.loginForm;
|
||||||
|
f.action="<c:url value='/member/insertMemberInfoForm.do'/>";
|
||||||
|
f.submit();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
SNS 인증<br>
|
||||||
|
<form id="infoForm" name="loginForm" method="post">
|
||||||
|
<div> <input type="hidden" id="id" name="id">
|
||||||
|
<input type="hidden" id="name" name="name">
|
||||||
|
<input type="hidden" id="birth_yy" name="birth_yy">
|
||||||
|
<input type="hidden" id="birth_mm" name="birth_mm">
|
||||||
|
<input type="hidden" id="birth_dd" name="birth_dd">
|
||||||
|
<input type="hidden" id="phone" name="phone">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id = "naver_id_login"></div>
|
||||||
|
|
||||||
|
<a id="kakao-login-btn"></a>
|
||||||
|
<a href="http://developers.kakao.com/logout"></a>
|
||||||
|
<ul>
|
||||||
|
<li id="GgCustomLogin">
|
||||||
|
<a href="javascript:void(0)">
|
||||||
|
<span>Login with Google</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
//----------네이버--------------
|
||||||
|
var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/nlib/member/naverSignResultPopup.do"); // Client ID, CallBack URL 삽입
|
||||||
|
// 단 'localhost'가 포함된 CallBack URL
|
||||||
|
var state = naver_id_login.getUniqState();
|
||||||
|
|
||||||
|
naver_id_login.setButton("green", 4, 40);
|
||||||
|
naver_id_login.setDomain("http://www.example.com/nlib/member/snsCertForm.do"); // URL
|
||||||
|
naver_id_login.setState(state);
|
||||||
|
naver_id_login.setPopup();
|
||||||
|
naver_id_login.init_naver_id_login();
|
||||||
|
//----------네이버--------------
|
||||||
|
|
||||||
|
//----------카카오--------------
|
||||||
|
Kakao.init('c449bf78ccf8dc336e43694099a1f4da'); //아까 카카오개발자홈페이지에서 발급받은 자바스크립트 키를 입력함
|
||||||
|
//카카오 로그인 버튼을 생성합니다.
|
||||||
|
Kakao.Auth.createLoginButton({
|
||||||
|
container: '#kakao-login-btn',
|
||||||
|
success: function(authObj) {
|
||||||
|
Kakao.API.request({
|
||||||
|
|
||||||
|
url: '/v2/user/me',
|
||||||
|
|
||||||
|
success: function(res) {
|
||||||
|
//onsole.log(res.id);//<---- 콘솔 로그에 id 정보 출력(id는 res안에 있기 때문에 res.id 로 불러온다)
|
||||||
|
//console.log(res.kakao_account.email);//<---- 콘솔 로그에 email 정보 출력 (어딨는지 알겠죠?)
|
||||||
|
//console.log(authObj.access_token);//<---- 콘솔 로그에 토큰값 출력
|
||||||
|
//로그인으로 타야함
|
||||||
|
$("#id").val(res.kakao_account.email);
|
||||||
|
snsLogin();
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: function(error) {
|
||||||
|
alert(JSON.stringify(error));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//----------카카오--------------
|
||||||
|
//----------구글---------------
|
||||||
|
//처음 실행하는 함수
|
||||||
|
function init() {
|
||||||
|
gapi.load('auth2', function() {
|
||||||
|
gapi.auth2.init();
|
||||||
|
options = new gapi.auth2.SigninOptionsBuilder();
|
||||||
|
options.setPrompt('select_account');
|
||||||
|
// 추가는 Oauth 승인 권한 추가 후 띄어쓰기 기준으로 추가
|
||||||
|
options.setScope('email profile openid https://www.googleapis.com/auth/user.birthday.read');
|
||||||
|
// 인스턴스의 함수 호출 - element에 로그인 기능 추가
|
||||||
|
// GgCustomLogin은 li태그안에 있는 ID, 위에 설정한 options와 아래 성공,실패시 실행하는 함수들
|
||||||
|
gapi.auth2.getAuthInstance().attachClickHandler('GgCustomLogin', options, onSignIn, onSignInFailure);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function onSignIn(googleUser) {
|
||||||
|
var access_token = googleUser.getAuthResponse().access_token
|
||||||
|
$.ajax({
|
||||||
|
// people api를 이용하여 프로필 및 생년월일에 대한 선택동의후 가져온다.
|
||||||
|
url: 'https://people.googleapis.com/v1/people/me'
|
||||||
|
// key에 자신의 API 키를 넣습니다.phoneNumbers birthdays names
|
||||||
|
, data: {personFields:'emailAddresses,birthdays,names,phoneNumbers', key:'AIzaSyCmVKytZ2Ea6x1Em-iXPkah29LSq6ELH1M', 'access_token': access_token}
|
||||||
|
, method:'GET'
|
||||||
|
})
|
||||||
|
.done(function(e){
|
||||||
|
//프로필을 가져온다.
|
||||||
|
$("#id").val(e.emailAddresses[0].value);
|
||||||
|
$("#name").val(e.names[0].displayName);
|
||||||
|
$("#birth_yy").val(e.birthdays[1].date.year);
|
||||||
|
$("#birth_mm").val(e.birthdays[1].date.month);
|
||||||
|
$("#birth_dd").val(e.birthdays[1].date.day);
|
||||||
|
snsLogin();
|
||||||
|
})
|
||||||
|
.fail(function(e){
|
||||||
|
console.log(e);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function onSignInFailure(t){
|
||||||
|
console.log(t);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
76
src/main/webapp/WEB-INF/jsp/nlib/popup/jusoPopup.jsp
Normal file
76
src/main/webapp/WEB-INF/jsp/nlib/popup/jusoPopup.jsp
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : jusoPopup.jsp
|
||||||
|
*
|
||||||
|
* @Description : 주소 API
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>Insert title here</title>
|
||||||
|
<%
|
||||||
|
request.setCharacterEncoding("UTF-8"); //한글깨지면 주석제거
|
||||||
|
//request.setCharacterEncoding("EUC-KR"); //해당시스템의 인코딩타입이 EUC-KR일경우에
|
||||||
|
String inputYn = request.getParameter("inputYn");
|
||||||
|
String zipNo = request.getParameter("zipNo");
|
||||||
|
String roadAddrPart1 = request.getParameter("roadAddrPart1");
|
||||||
|
String roadAddrPart2 = request.getParameter("roadAddrPart2");
|
||||||
|
String addrDetail = request.getParameter("addrDetail");
|
||||||
|
|
||||||
|
%>
|
||||||
|
</head>
|
||||||
|
<script language="javascript">
|
||||||
|
// opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("주소입력화면 소스"도 동일하게 적용시켜야 합니다.)
|
||||||
|
//document.domain = "abc.go.kr";
|
||||||
|
|
||||||
|
function init(){
|
||||||
|
var url = location.href;
|
||||||
|
var confmKey = "devU01TX0FVVEgyMDIxMDYzMDEwNTQyMDExMTM0MTg=";
|
||||||
|
var resultType = "4"; // 도로명주소 검색결과 화면 출력내용, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명
|
||||||
|
var inputYn= "<%=inputYn%>";
|
||||||
|
if(inputYn != "Y"){
|
||||||
|
document.form.confmKey.value = confmKey;
|
||||||
|
document.form.returnUrl.value = url;
|
||||||
|
document.form.resultType.value = resultType;
|
||||||
|
document.form.action="http://www.juso.go.kr/addrlink/addrLinkUrl.do"; //인터넷망
|
||||||
|
//document.form.action="http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do"; //모바일 웹인 경우, 인터넷망
|
||||||
|
document.form.submit();
|
||||||
|
}else{
|
||||||
|
opener.jusoCallBack("<%=zipNo%>","<%=roadAddrPart1+roadAddrPart2%>","<%=addrDetail%>");
|
||||||
|
window.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<body onload="init();">
|
||||||
|
<form id="form" name="form" method="post">
|
||||||
|
<input type="hidden" id="confmKey" name="confmKey" value=""/>
|
||||||
|
<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
|
||||||
|
<input type="hidden" id="resultType" name="resultType" value=""/>
|
||||||
|
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START-->
|
||||||
|
<!--
|
||||||
|
<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
|
||||||
|
-->
|
||||||
|
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : naverLoginResultPopup.jsp
|
||||||
|
*
|
||||||
|
* @Description : 로그인시 naver로그인 페이지
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js"
|
||||||
|
charset="utf-8"></script>
|
||||||
|
</head>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/nlib/login/naverLoginResultPopup.do"); // 역시 마찬가지로 'localhost'가 포함된 CallBack URL
|
||||||
|
|
||||||
|
// 네이버 사용자 프로필 조회
|
||||||
|
naver_id_login.get_naver_userprofile("naverSignInCallback()");
|
||||||
|
|
||||||
|
// 네이버 사용자 프로필 조회 이후 프로필 정보를 처리할 callback function
|
||||||
|
function naverSignInCallback() {
|
||||||
|
opener.snsLogin(naver_id_login.getProfileData('email'));
|
||||||
|
self.close();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,56 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : naverSignResultPopup.jsp
|
||||||
|
*
|
||||||
|
* @Description : 회원가입시 naver로그인 페이지
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js"
|
||||||
|
charset="utf-8"></script>
|
||||||
|
</head>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/login/naverSignResultPopup.do"); // 역시 마찬가지로 'localhost'가 포함된 CallBack URL
|
||||||
|
|
||||||
|
// 네이버 사용자 프로필 조회
|
||||||
|
naver_id_login.get_naver_userprofile("naverSignInCallback()");
|
||||||
|
|
||||||
|
// 네이버 사용자 프로필 조회 이후 프로필 정보를 처리할 callback function
|
||||||
|
function naverSignInCallback() {
|
||||||
|
$("#id",opener.document).val(naver_id_login.getProfileData('email'));
|
||||||
|
$("#name",opener.document).val(naver_id_login.getProfileData('name'));
|
||||||
|
$("#birth_yy",opener.document).val(naver_id_login.getProfileData('birthyear'));
|
||||||
|
$("#birth_mm",opener.document).val(naver_id_login.getProfileData('birthday').substring(0,2).replace(/(^0+)/, ""));
|
||||||
|
$("#birth_dd",opener.document).val(naver_id_login.getProfileData('birthday').substring(3,5).replace(/(^0+)/, ""));
|
||||||
|
$("#phone",opener.document).val(naver_id_login.getProfileData('mobile'));
|
||||||
|
opener.snsLogin();
|
||||||
|
self.close();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</html>
|
||||||
40
src/main/webapp/WEB-INF/jsp/nlib/userInfo/getMyInfo.jsp
Normal file
40
src/main/webapp/WEB-INF/jsp/nlib/userInfo/getMyInfo.jsp
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : getMyInfo.jsp
|
||||||
|
*
|
||||||
|
* @Description : 내 정보 조회
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>Insert title here</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/userInfo/pwCertMyInfo.do';">내 정보 수정</a>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
190
src/main/webapp/WEB-INF/jsp/nlib/userInfo/putMyInfo.jsp
Normal file
190
src/main/webapp/WEB-INF/jsp/nlib/userInfo/putMyInfo.jsp
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : putMyInfo.jsp
|
||||||
|
*
|
||||||
|
* @Description : 내 정보 수정
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
|
||||||
|
<title>Insert title here</title>
|
||||||
|
<script type="text/javaScript" language="javascript" defer="defer">
|
||||||
|
function goPopup(){
|
||||||
|
// 주소검색을 수행할 팝업 페이지를 호출합니다.
|
||||||
|
// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다.
|
||||||
|
var pop = window.open("/nlib/popup/jusoPopup.do","pop","width=570,height=420, scrollbars=yes, resizable=yes");
|
||||||
|
|
||||||
|
// 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다.
|
||||||
|
//var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes");
|
||||||
|
}
|
||||||
|
$(document).ready(function() {
|
||||||
|
<%
|
||||||
|
//핸드폰 번호가 변하는것 실시간 감지
|
||||||
|
%>
|
||||||
|
$("#phone").on("propertychange change keyup paste input", function() {
|
||||||
|
$("#phoneCertYn").val("N");
|
||||||
|
});
|
||||||
|
})
|
||||||
|
<%
|
||||||
|
//핸드폰 인증번호 받기
|
||||||
|
%>
|
||||||
|
function phoneCert(){
|
||||||
|
$("#phone").val($("#phone").val().replace(/-/gi,""));
|
||||||
|
$("#phoneCertYn").val("Y");
|
||||||
|
}
|
||||||
|
|
||||||
|
function jusoCallBack(zipNo,roadAddrPart,addrDetail){
|
||||||
|
// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
|
||||||
|
$("#zipNo").val(zipNo);
|
||||||
|
$("#roadAddrPart").val(roadAddrPart);
|
||||||
|
$("#addrDetail").val(addrDetail);
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('keydown', function(event) {
|
||||||
|
if (event.keyCode === 13) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
function update(){
|
||||||
|
alert("수정되었습니다.");
|
||||||
|
document.updateForm.action="/nlib/userInfo/getMyInfo.do";
|
||||||
|
document.updateForm.submit();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
body {
|
||||||
|
|
||||||
|
padding-top:0px;
|
||||||
|
|
||||||
|
margin-top:0px;
|
||||||
|
|
||||||
|
background-color:#f5f5f5;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
|
||||||
|
padding-top:0px;
|
||||||
|
|
||||||
|
margin-top:0px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.form-horizontal .control-label.text-left{
|
||||||
|
|
||||||
|
text-align:left;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.form-horizontal .form-group {
|
||||||
|
|
||||||
|
height:50px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
h3 span.ok {
|
||||||
|
|
||||||
|
color:#01A9DB;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
label.error {
|
||||||
|
|
||||||
|
font-family:"돋움", Dotum, "Apple SD Gothic Neo", Helvetica, Sans-serif;
|
||||||
|
|
||||||
|
font-size:9pt;
|
||||||
|
|
||||||
|
font-weight:600;
|
||||||
|
|
||||||
|
padding:3px 0 0 10px;
|
||||||
|
|
||||||
|
color:#FF0000;
|
||||||
|
|
||||||
|
display:block;
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="wrap">
|
||||||
|
<br><br>
|
||||||
|
<b><font size="6" color="gray">정보수정</font></b>
|
||||||
|
<br><br><br>
|
||||||
|
|
||||||
|
<form id="updateForm" name="updateForm" method="post">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td id="title">아이디</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="id" name="id" maxlength="30" readonly value=<c:out value="${result.id}"/> >
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="title">이름</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="name" name="name" maxlength="40" value=<c:out value="${result.name}"/>>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="title">휴대전화</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="phone" name="phone" value=<c:out value="${result.phone}"/> ><button type="button" style="text-align:left;" class="btn-warning" onclick="phoneCert()">인증번호 받기</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="title">주소</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="zipNo" name="zipNo" readonly value=<c:out value="${result.zipNo}"/> ><button type="button" style="text-align:left;" class="btn-warning" onclick="goPopup()" >주소검색</button><br>
|
||||||
|
<input type="text" id="roadAddrPart" name="roadAddrPart" readonly value=<c:out value="${result.roadAddrPart}"/> ><input type="text" id="addrDetail" name="addrDetail" readonly value=<c:out value="${result.addrDetail}"/> >
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
<input type="hidden" id="phoneCertYn" name="phoneCertYn" value=<c:out value="N"/>>
|
||||||
|
<input type="button" onclick="update();" value="수정"/> <input type="button" value="취소">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
52
src/main/webapp/WEB-INF/jsp/nlib/userInfo/pwCertMyInfo.jsp
Normal file
52
src/main/webapp/WEB-INF/jsp/nlib/userInfo/pwCertMyInfo.jsp
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : putMyInfo.jsp
|
||||||
|
*
|
||||||
|
* @Description : 내 정보 수정
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||||
|
* @since 2021. 7. 12.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
|
||||||
|
<title>Insert title here</title>
|
||||||
|
<script>
|
||||||
|
function goPutMyInfo(){
|
||||||
|
document.pwInputForm.action="/nlib/userInfo/putMyInfo.do";
|
||||||
|
document.pwInputForm.submit();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>비밀번호를 입력해주세요</h2>
|
||||||
|
<form id="pwInputForm" name="pwInputForm" method="POST">
|
||||||
|
<input type="password" id="password" name="password"><button style="text-align:left;" class="btn-warning" onclick="goPutMyInfo();">확인</button>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
6
src/main/webapp/WEB-INF/tiles/inc-popup/footer.jsp
Normal file
6
src/main/webapp/WEB-INF/tiles/inc-popup/footer.jsp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
한국문화원연합회 COPYRIGHT The Federation of Korea Culture Center. ALL RIGHT RESERVED.
|
||||||
8
src/main/webapp/WEB-INF/tiles/inc-popup/header.jsp
Normal file
8
src/main/webapp/WEB-INF/tiles/inc-popup/header.jsp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
|
||||||
|
|
||||||
|
Header :
|
||||||
4
src/main/webapp/WEB-INF/tiles/inc-popup/menu.jsp
Normal file
4
src/main/webapp/WEB-INF/tiles/inc-popup/menu.jsp
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<a href="#" onclick="window.close();">닫기</a>
|
||||||
@ -14,6 +14,7 @@
|
|||||||
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/login/loginForm.do';">로그인</a></li>
|
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/login/loginForm.do';">로그인</a></li>
|
||||||
</sec:authorize>
|
</sec:authorize>
|
||||||
<sec:authorize access="isAuthenticated()">
|
<sec:authorize access="isAuthenticated()">
|
||||||
|
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/userInfo/getMyInfo.do';">내 정보</a></li>
|
||||||
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/logout';">로그아웃</a></li>
|
<li><a href="#" onclick="javascript:location.href='${pageContext.request.contextPath}/logout';">로그아웃</a></li>
|
||||||
</sec:authorize>
|
</sec:authorize>
|
||||||
<sec:authorize access="not isAuthenticated()">
|
<sec:authorize access="not isAuthenticated()">
|
||||||
|
|||||||
29
src/main/webapp/WEB-INF/tiles/tiles-layout-popup.jsp
Normal file
29
src/main/webapp/WEB-INF/tiles/tiles-layout-popup.jsp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link href="<c:url value='/css/nlib.css' />" rel="stylesheet" type="text/css">
|
||||||
|
<title>온라인 자료대출관리 (N-LIB)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="page-container">
|
||||||
|
<div id="header"><tiles:insertAttribute name="header" /></div>
|
||||||
|
<div id="menu"><tiles:insertAttribute name="menu" /></div>
|
||||||
|
<div id="content-wrap"><tiles:insertAttribute name="main" /></div>
|
||||||
|
<div id="footer"><tiles:insertAttribute name="footer" /></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -10,7 +10,11 @@
|
|||||||
<put-attribute name="menu" value="/WEB-INF/tiles/inc/menu.jsp" />
|
<put-attribute name="menu" value="/WEB-INF/tiles/inc/menu.jsp" />
|
||||||
<put-attribute name="footer" value="/WEB-INF/tiles/inc/footer.jsp" />
|
<put-attribute name="footer" value="/WEB-INF/tiles/inc/footer.jsp" />
|
||||||
</definition>
|
</definition>
|
||||||
|
<definition name="popup" template="/WEB-INF/tiles/tiles-layout-popup.jsp">
|
||||||
|
<put-attribute name="header" value="/WEB-INF/tiles/inc-popup/header.jsp" />
|
||||||
|
<put-attribute name="menu" value="/WEB-INF/tiles/inc-popup/menu.jsp" />
|
||||||
|
<put-attribute name="footer" value="/WEB-INF/tiles/inc-popup/footer.jsp" />
|
||||||
|
</definition>
|
||||||
<definition name="*" extends="template">
|
<definition name="*" extends="template">
|
||||||
<put-attribute name="main" value="/WEB-INF/jsp/{1}.jsp" />
|
<put-attribute name="main" value="/WEB-INF/jsp/{1}.jsp" />
|
||||||
</definition>
|
</definition>
|
||||||
@ -22,9 +26,17 @@
|
|||||||
<definition name="*/*/*" extends="template">
|
<definition name="*/*/*" extends="template">
|
||||||
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />
|
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />
|
||||||
</definition>
|
</definition>
|
||||||
|
|
||||||
<definition name="*/*/*/*" extends="template">
|
<definition name="*/*/*/*" extends="template">
|
||||||
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}/{4}.jsp" />
|
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}/{4}.jsp" />
|
||||||
</definition>
|
</definition>
|
||||||
|
|
||||||
|
<definition name="*/*Popup" extends="popup">
|
||||||
|
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}*Popup.jsp" />
|
||||||
|
</definition>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<definition name="*/*/*Popup" extends="popup">
|
||||||
|
<put-attribute name="main" value="/WEB-INF/jsp/{1}/{2}/{3}*Popup.jsp" />
|
||||||
|
</definition>
|
||||||
</tiles-definitions>
|
</tiles-definitions>
|
||||||
|
|||||||
@ -60,7 +60,10 @@
|
|||||||
<servlet-name>action</servlet-name>
|
<servlet-name>action</servlet-name>
|
||||||
<url-pattern>*.do</url-pattern>
|
<url-pattern>*.do</url-pattern>
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>action</servlet-name>
|
||||||
|
<url-pattern>*.ajax</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
<welcome-file-list>
|
<welcome-file-list>
|
||||||
<welcome-file>index.jsp</welcome-file>
|
<welcome-file>index.jsp</welcome-file>
|
||||||
</welcome-file-list>
|
</welcome-file-list>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
Manifest-Version: 1.0
|
Manifest-Version: 1.0
|
||||||
Built-By: KNKIM
|
Built-By: JSYOO
|
||||||
Build-Jdk: 1.8.0_291
|
Build-Jdk: 1.8.0_291
|
||||||
Created-By: Maven Integration for Eclipse
|
Created-By: Maven Integration for Eclipse
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +0,0 @@
|
|||||||
#Generated by Maven Integration for Eclipse
|
|
||||||
#Fri Jul 09 18:29:03 KST 2021
|
|
||||||
version=1.0.0
|
|
||||||
groupId=iams
|
|
||||||
m2e.projectName=nlib
|
|
||||||
m2e.projectLocation=C\:\\iams\\workspace\\nlib
|
|
||||||
artifactId=nlib
|
|
||||||
@ -1,667 +0,0 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<groupId>iams</groupId>
|
|
||||||
<artifactId>nlib</artifactId>
|
|
||||||
<packaging>war</packaging>
|
|
||||||
<version>1.0.0</version>
|
|
||||||
<name>nlib</name>
|
|
||||||
<url>http://www.egovframe.go.kr</url>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<spring.maven.artifact.version>4.3.16.RELEASE</spring.maven.artifact.version>
|
|
||||||
<egovframework.rte.version>3.8.0</egovframework.rte.version>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<repositories>
|
|
||||||
<repository>
|
|
||||||
<id>mvn2</id>
|
|
||||||
<url>http://repo1.maven.org/maven2/</url>
|
|
||||||
<releases>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</releases>
|
|
||||||
<snapshots>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</snapshots>
|
|
||||||
</repository>
|
|
||||||
<repository>
|
|
||||||
<id>egovframe</id>
|
|
||||||
<url>http://www.egovframe.go.kr/maven/</url>
|
|
||||||
<releases>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</releases>
|
|
||||||
<snapshots>
|
|
||||||
<enabled>false</enabled>
|
|
||||||
</snapshots>
|
|
||||||
</repository>
|
|
||||||
<repository>
|
|
||||||
<id>egovframe2</id>
|
|
||||||
<url>http://maven.egovframe.kr:8080/maven/</url>
|
|
||||||
<releases>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</releases>
|
|
||||||
<snapshots>
|
|
||||||
<enabled>false</enabled>
|
|
||||||
</snapshots>
|
|
||||||
</repository>
|
|
||||||
</repositories>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<!-- 표준프레임워크 실행환경 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>egovframework.rte</groupId>
|
|
||||||
<artifactId>egovframework.rte.ptl.mvc</artifactId>
|
|
||||||
<version>${egovframework.rte.version}</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>commons-logging</artifactId>
|
|
||||||
<groupId>commons-logging</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>egovframework.rte</groupId>
|
|
||||||
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
|
|
||||||
<version>${egovframework.rte.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>egovframework.rte</groupId>
|
|
||||||
<artifactId>egovframework.rte.fdl.idgnr</artifactId>
|
|
||||||
<version>${egovframework.rte.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>egovframework.rte</groupId>
|
|
||||||
<artifactId>egovframework.rte.fdl.property</artifactId>
|
|
||||||
<version>${egovframework.rte.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.servlet</groupId>
|
|
||||||
<artifactId>servlet-api</artifactId>
|
|
||||||
<scope>provided</scope>
|
|
||||||
<version>2.5</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.servlet</groupId>
|
|
||||||
<artifactId>jstl</artifactId>
|
|
||||||
<version>1.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>taglibs</groupId>
|
|
||||||
<artifactId>standard</artifactId>
|
|
||||||
<version>1.1.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.antlr</groupId>
|
|
||||||
<artifactId>antlr</artifactId>
|
|
||||||
<version>3.5</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hsqldb</groupId>
|
|
||||||
<artifactId>hsqldb</artifactId>
|
|
||||||
<version>2.3.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- mysql이나 oracle DB 사용시 아래 설정 추가
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.googlecode.log4jdbc</groupId>
|
|
||||||
<artifactId>log4jdbc</artifactId>
|
|
||||||
<version>1.2</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-dbcp</groupId>
|
|
||||||
<artifactId>commons-dbcp</artifactId>
|
|
||||||
<version>1.4</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>mysql</groupId>
|
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
|
||||||
<version>5.1.31</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>ojdbc</groupId>
|
|
||||||
<artifactId>ojdbc</artifactId>
|
|
||||||
<version>14</version>
|
|
||||||
<scope>system</scope>
|
|
||||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc-14.jar</systemPath>
|
|
||||||
</dependency>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>egovframework.rte</groupId>
|
|
||||||
<artifactId>egovframework.rte.fdl.security</artifactId>
|
|
||||||
<version>${egovframework.rte.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>egovframework.rte</groupId>
|
|
||||||
<artifactId>egovframework.rte.fdl.excel</artifactId>
|
|
||||||
<version>${egovframework.rte.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>egovframework.rte</groupId>
|
|
||||||
<artifactId>egovframework.rte.bat.core</artifactId>
|
|
||||||
<version>${egovframework.rte.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>egovframework.rte</groupId>
|
|
||||||
<artifactId>egovframework.rte.fdl.crypto</artifactId>
|
|
||||||
<version>${egovframework.rte.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.googlecode.log4jdbc</groupId>
|
|
||||||
<artifactId>log4jdbc</artifactId>
|
|
||||||
<version>1.2</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-dbcp</groupId>
|
|
||||||
<artifactId>commons-dbcp</artifactId>
|
|
||||||
<version>1.4</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.servlet</groupId>
|
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
|
||||||
<version>3.1.0</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jasypt</groupId>
|
|
||||||
<artifactId>jasypt</artifactId>
|
|
||||||
<version>1.9.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>cglib</groupId>
|
|
||||||
<artifactId>cglib</artifactId>
|
|
||||||
<version>3.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-compress</artifactId>
|
|
||||||
<version>1.8.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>xerces</groupId>
|
|
||||||
<artifactId>xercesImpl</artifactId>
|
|
||||||
<version>2.11.0</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.ehcache</groupId>
|
|
||||||
<artifactId>ehcache-core</artifactId>
|
|
||||||
<version>2.6.9</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.ehcache</groupId>
|
|
||||||
<artifactId>ehcache-terracotta</artifactId>
|
|
||||||
<version>2.1.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.quartz-scheduler</groupId>
|
|
||||||
<artifactId>quartz</artifactId>
|
|
||||||
<version>2.1.7</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.quartz-scheduler</groupId>
|
|
||||||
<artifactId>quartz-jobs</artifactId>
|
|
||||||
<version>2.2.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>oro</groupId>
|
|
||||||
<artifactId>oro</artifactId>
|
|
||||||
<version>2.0.8</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.ibm.icu</groupId>
|
|
||||||
<artifactId>icu4j</artifactId>
|
|
||||||
<version>53.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-net</groupId>
|
|
||||||
<artifactId>commons-net</artifactId>
|
|
||||||
<version>3.6</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-email</artifactId>
|
|
||||||
<version>1.5</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>egovframework.com.ems</groupId>
|
|
||||||
<artifactId>sndng-mail</artifactId>
|
|
||||||
<version>1.0</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.servlet.jsp</groupId>
|
|
||||||
<artifactId>javax.servlet.jsp-api</artifactId>
|
|
||||||
<version>2.3.1</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>ldapsdk</groupId>
|
|
||||||
<artifactId>ldapsdk</artifactId>
|
|
||||||
<version>4.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.artofsolving</groupId>
|
|
||||||
<artifactId>jodconverter</artifactId>
|
|
||||||
<version>2.2.1</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>commons-io</artifactId>
|
|
||||||
<groupId>commons-io</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-fileupload</groupId>
|
|
||||||
<artifactId>commons-fileupload</artifactId>
|
|
||||||
<version>1.3.1</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>commons-io</artifactId>
|
|
||||||
<groupId>commons-io</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.twitter4j</groupId>
|
|
||||||
<artifactId>twitter4j-core</artifactId>
|
|
||||||
<version>4.0.7</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sourceforge.ajaxtags</groupId>
|
|
||||||
<artifactId>ajaxtags-resources</artifactId>
|
|
||||||
<version>1.5.7</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.ckeditor</groupId>
|
|
||||||
<artifactId>ckeditor-java-core</artifactId>
|
|
||||||
<version>3.5.3</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.xmlgraphics</groupId>
|
|
||||||
<artifactId>batik-ext</artifactId>
|
|
||||||
<version>1.7</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.social</groupId>
|
|
||||||
<artifactId>spring-social-facebook</artifactId>
|
|
||||||
<version>2.0.3.RELEASE</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>spring-web</artifactId>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>spring-webmvc</artifactId>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.github.scribejava</groupId>
|
|
||||||
<artifactId>scribejava-apis</artifactId>
|
|
||||||
<version>5.6.0</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.github.scribejava</groupId>
|
|
||||||
<artifactId>scribejava-core</artifactId>
|
|
||||||
<version>5.6.0</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.httpcomponents</groupId>
|
|
||||||
<artifactId>httpclient</artifactId>
|
|
||||||
<version>4.3.4</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>commons-logging</artifactId>
|
|
||||||
<groupId>commons-logging</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.h2database</groupId>
|
|
||||||
<artifactId>h2</artifactId>
|
|
||||||
<version>1.4.180</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.websocket</groupId>
|
|
||||||
<artifactId>javax.websocket-api</artifactId>
|
|
||||||
<version>1.0</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.glassfish</groupId>
|
|
||||||
<artifactId>javax.json</artifactId>
|
|
||||||
<version>1.0.4</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.ldap</groupId>
|
|
||||||
<artifactId>spring-ldap-core</artifactId>
|
|
||||||
<version>2.3.2.RELEASE</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-beans</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-core</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-tx</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>jcl-over-slf4j</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.codehaus.jackson</groupId>
|
|
||||||
<artifactId>jackson-mapper-asl</artifactId>
|
|
||||||
<version>1.9.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.mariadb.jdbc</groupId>
|
|
||||||
<artifactId>mariadb-java-client</artifactId>
|
|
||||||
<version>2.2.5</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>kr.go.mgov</groupId>
|
|
||||||
<artifactId>smeapi</artifactId>
|
|
||||||
<version>2.7</version>
|
|
||||||
<scope>system</scope>
|
|
||||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/smeapi_2_7.jar</systemPath>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>kr.go.gpki</groupId>
|
|
||||||
<artifactId>gpkisecureweb</artifactId>
|
|
||||||
<version>1.0.4.9</version>
|
|
||||||
<scope>system</scope>
|
|
||||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/gpkisecureweb-1.0.4.9.jar</systemPath>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>kr.go.gpki</groupId>
|
|
||||||
<artifactId>libgpkiapi_jni</artifactId>
|
|
||||||
<version>1.4.0.0</version>
|
|
||||||
<scope>system</scope>
|
|
||||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/libgpkiapi_jni-1.4.0.0.jar</systemPath>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- XML-Map 변환 기능을 위한 추가 (DIGITALSHIP 2021.06.15)-->
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.thoughtworks.xstream</groupId>
|
|
||||||
<artifactId>xstream</artifactId>
|
|
||||||
<version>1.4.4</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- XML/자바객체 변환 (DIGITALSHIP 2021.06.21)-->
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
||||||
<artifactId>jackson-dataformat-xml</artifactId>
|
|
||||||
<version>2.9.0</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<defaultGoal>install</defaultGoal>
|
|
||||||
<directory>${basedir}/target</directory>
|
|
||||||
<finalName>${artifactId}-${version}</finalName>
|
|
||||||
<pluginManagement>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.tomcat.maven</groupId>
|
|
||||||
<artifactId>tomcat7-maven-plugin</artifactId>
|
|
||||||
<version>2.2</version>
|
|
||||||
<configuration>
|
|
||||||
<port>80</port>
|
|
||||||
<path>/</path>
|
|
||||||
<systemProperties>
|
|
||||||
<JAVA_OPTS>-Xms256m -Xmx768m -XX:MaxPermSize=256m</JAVA_OPTS>
|
|
||||||
</systemProperties>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<source>1.8</source>
|
|
||||||
<target>1.8</target>
|
|
||||||
<encoding>UTF-8</encoding>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>hibernate3-maven-plugin</artifactId>
|
|
||||||
<version>2.1</version>
|
|
||||||
<configuration>
|
|
||||||
<components>
|
|
||||||
<component>
|
|
||||||
<name>hbm2ddl</name>
|
|
||||||
<implementation>annotationconfiguration</implementation>
|
|
||||||
</component>
|
|
||||||
</components>
|
|
||||||
</configuration>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hsqldb</groupId>
|
|
||||||
<artifactId>hsqldb</artifactId>
|
|
||||||
<version>2.3.2</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</plugin>
|
|
||||||
<!-- EMMA -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>emma-maven-plugin</artifactId>
|
|
||||||
<version>1.0-alpha-3</version>
|
|
||||||
</plugin>
|
|
||||||
<!-- PMD manven plugin -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-pmd-plugin</artifactId>
|
|
||||||
<version>3.1</version>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</pluginManagement>
|
|
||||||
<plugins>
|
|
||||||
<!-- EMMA -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skipTests>true</skipTests>
|
|
||||||
<forkMode>once</forkMode>
|
|
||||||
<reportFormat>xml</reportFormat>
|
|
||||||
<excludes>
|
|
||||||
<exclude>**/Abstract*.java</exclude>
|
|
||||||
<exclude>**/*Suite.java</exclude>
|
|
||||||
</excludes>
|
|
||||||
<includes>
|
|
||||||
<include>**/*Test.java</include>
|
|
||||||
</includes>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>emma-maven-plugin</artifactId>
|
|
||||||
<inherited>true</inherited>
|
|
||||||
</plugin>
|
|
||||||
<!-- JavaDoc -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
|
||||||
<version>2.9.1</version>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
<reporting>
|
|
||||||
<outputDirectory>${basedir}/target/site</outputDirectory>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
|
||||||
<version>2.7</version>
|
|
||||||
<reportSets>
|
|
||||||
<reportSet>
|
|
||||||
<id>sunlink</id>
|
|
||||||
<reports>
|
|
||||||
<report>javadoc</report>
|
|
||||||
</reports>
|
|
||||||
<inherited>true</inherited>
|
|
||||||
<configuration>
|
|
||||||
<links>
|
|
||||||
<link>http://docs.oracle.com/javase/6/docs/api/</link>
|
|
||||||
</links>
|
|
||||||
</configuration>
|
|
||||||
</reportSet>
|
|
||||||
</reportSets>
|
|
||||||
</plugin>
|
|
||||||
<!-- JUnit Test Results & EMMA Coverage Reporting -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>emma-maven-plugin</artifactId>
|
|
||||||
<inherited>true</inherited>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>surefire-report-maven-plugin</artifactId>
|
|
||||||
<inherited>true</inherited>
|
|
||||||
<reportSets>
|
|
||||||
<reportSet>
|
|
||||||
<reports>
|
|
||||||
<report>report-only</report>
|
|
||||||
</reports>
|
|
||||||
</reportSet>
|
|
||||||
</reportSets>
|
|
||||||
</plugin>
|
|
||||||
<!-- PMD manven plugin -->
|
|
||||||
<!--
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-pmd-plugin</artifactId>
|
|
||||||
<version>3.1</version>
|
|
||||||
<configuration>
|
|
||||||
<rulesets>
|
|
||||||
<ruleset>./Ruleset.xml</ruleset>
|
|
||||||
</rulesets>
|
|
||||||
<linkXref>true</linkXref>
|
|
||||||
<sourceEncoding>${encoding}</sourceEncoding>
|
|
||||||
<minimumTokens>100</minimumTokens>
|
|
||||||
<targetJdk>${compileSource}</targetJdk>
|
|
||||||
</configuration>
|
|
||||||
<reportSets>
|
|
||||||
<reportSet>
|
|
||||||
<reports>
|
|
||||||
<report>pmd</report>
|
|
||||||
</reports>
|
|
||||||
</reportSet>
|
|
||||||
</reportSets>
|
|
||||||
</plugin>
|
|
||||||
-->
|
|
||||||
<!-- Generating JavaDoc Report -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<minmemory>128m</minmemory>
|
|
||||||
<maxmemory>512m</maxmemory>
|
|
||||||
<encoding>${encoding}</encoding>
|
|
||||||
<docencoding>${encoding}</docencoding>
|
|
||||||
<charset>${encoding}</charset>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<!-- Generating Java Source in HTML -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-jxr-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<inputEncoding>${encoding}</inputEncoding>
|
|
||||||
<outputEncoding>${encoding}</outputEncoding>
|
|
||||||
<linkJavadoc>true</linkJavadoc>
|
|
||||||
<javadocDir>apidocs</javadocDir>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</reporting>
|
|
||||||
</project>
|
|
||||||
Loading…
Reference in New Issue
Block a user