회원가입폼, 로그인폼 구성

This commit is contained in:
JSYOO 2021-07-14 16:42:16 +09:00
parent d97828a25f
commit a476cba476
36 changed files with 2140 additions and 790 deletions

11
pom.xml
View File

@ -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>

View File

@ -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;
} }

View File

@ -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) {

View File

@ -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

View File

@ -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()

View File

@ -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

View File

@ -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";
}
} }

View File

@ -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";
}
}

View 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";
}
}

View File

@ -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

View File

@ -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 =="") {
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> </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 />
<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> </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>

View 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>

View File

@ -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>

View 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>

View File

@ -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>

View 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>

View 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>

View File

@ -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>

View 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>

View 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>

View File

@ -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>

View File

@ -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>

View 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>

View 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>

View 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>

View 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"%>
한국문화원연합회 &nbsp;&nbsp; COPYRIGHT The Federation of Korea Culture Center. ALL RIGHT RESERVED.

View 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 :

View 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>

View File

@ -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()">

View 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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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>