From 9b49319fc94aa019962f712dca160dac6cea09ca Mon Sep 17 00:00:00 2001 From: KNKIM Date: Mon, 13 Sep 2021 15:06:18 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A7=80=EB=B0=A9=EB=AC=B8=ED=99=94=EC=9B=90?= =?UTF-8?q?=20=EA=B0=80=EC=9E=85=20=EC=97=AC=EB=B6=80=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C=20=EC=B2=98=EB=A6=AC=20=EC=9E=91=EC=97=85?= =?UTF-8?q?.=20=EA=B3=B5=EC=A7=80=EC=82=AC=ED=95=AD=20=EC=A7=84=ED=96=89?= =?UTF-8?q?=EC=A4=91=EB=B0=B1=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/nlib/bbs/service/ArticleVO.java | 120 +++ .../java/nlib/bbs/service/BoardService.java | 88 +- .../nlib/bbs/service/BoardServiceApi.java | 71 ++ .../java/nlib/bbs/service/impl/AncmntDAO.java | 70 ++ .../bbs/service/impl/AncmntServiceImpl.java | 63 ++ .../java/nlib/bbs/service/impl/BoardDAO.java | 122 ++- .../nlib/bbs/service/impl/BoardDAOApi.java | 80 ++ .../bbs/service/impl/BoardServiceImpl.java | 6 +- .../java/nlib/bbs/web/AncmntController.java | 923 +++--------------- .../java/nlib/bbs/web/BoardController.java | 18 +- src/main/java/nlib/bbs/web/FaqController.java | 5 +- src/main/java/nlib/bbs/web/QnaController.java | 5 +- .../java/nlib/cmm/NlibCommonController.java | 45 +- .../nlib/cmm/web/NotificationController.java | 12 +- .../info/service/impl/InformServiceImpl.java | 10 +- .../java/nlib/info/web/InformController.java | 16 +- .../restful/service/DataApiInterface.java | 4 - .../nlib/restful/service/DataApiReqVO.java | 10 - .../sample/web/SampleDataApiController.java | 2 - .../nlib/security/SecUserDetailsService.java | 6 +- .../nlib/security/SpringSecurityConfig.java | 1 + .../java/nlib/user/service/LoginService.java | 1 - .../java/nlib/user/service/NlibLoginVO.java | 36 +- .../user/service/impl/LoginServiceImpl.java | 12 +- .../java/nlib/user/web/LoginController.java | 7 +- .../mapper/config/mapper-config.xml | 3 +- .../mapper/nlib/bbs/AncmntDAO_SQL.xml | 63 ++ .../mapper/nlib/info/InformDAO_SQL.xml | 20 +- .../mapper/nlib/user/LoginDAO_SQL.xml | 3 - .../mapper/nlib/user/SecUserDAO_SQL.xml | 4 +- .../WEB-INF/jsp/nlib/bbs/listAncmnts.jsp | 216 ++++ .../WEB-INF/jsp/nlib/board/updateQnAForm.jsp | 1 - src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp | 2 - .../inform/selectNCultureLocationInfo.jsp | 8 +- .../WEB-INF/jsp/nlib/sample/getSampleInfo.jsp | 1 - .../jsp/nlib/sample/getSampleInfoForm.jsp | 2 - src/main/webapp/WEB-INF/tiles/inc/menu.jsp | 3 +- 37 files changed, 937 insertions(+), 1122 deletions(-) create mode 100644 src/main/java/nlib/bbs/service/ArticleVO.java create mode 100644 src/main/java/nlib/bbs/service/BoardServiceApi.java create mode 100644 src/main/java/nlib/bbs/service/impl/AncmntDAO.java create mode 100644 src/main/java/nlib/bbs/service/impl/AncmntServiceImpl.java create mode 100644 src/main/java/nlib/bbs/service/impl/BoardDAOApi.java create mode 100644 src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml create mode 100644 src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp diff --git a/src/main/java/nlib/bbs/service/ArticleVO.java b/src/main/java/nlib/bbs/service/ArticleVO.java new file mode 100644 index 00000000..2109d092 --- /dev/null +++ b/src/main/java/nlib/bbs/service/ArticleVO.java @@ -0,0 +1,120 @@ +package nlib.bbs.service; + +import nlib.cmm.service.PagingVO; + +public class ArticleVO extends PagingVO { + + private String articleId; /* 게시글ID */ + private String mngOrgCd; /* 관리문화원코드 */ + private String bdType; /* 게시판유형 */ + private String title; /* 제목 */ + private String content; /* 내용 */ + + // 공지사항관련 + private String notiYn; /* 공지여부 */ + private String openYn; /* 공개여부 */ + private String postStartDate; /* 게시시작일자 */ + private String postEndDate; /* 게시종료일자 */ + + private int viewCnt; /* 조회수 */ + private String bdAttachFileId; /* 첨부파일아이디 */ + + private String regId; /* 등록자아이디 */ + private String regDd; /* 등록일자 */ + private String modId; /* 등록자아이디 */ + private String modDd; /* 등록일자 */ + + + public String getArticleId() { + return articleId; + } + public void setArticleId(String articleId) { + this.articleId = articleId; + } + public String getMngOrgCd() { + return mngOrgCd; + } + public void setMngOrgCd(String mngOrgCd) { + this.mngOrgCd = mngOrgCd; + } + public String getBdType() { + return bdType; + } + public void setBdType(String bdType) { + this.bdType = bdType; + } + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + public String getContent() { + return content; + } + public void setContent(String content) { + this.content = content; + } + public String getNotiYn() { + return notiYn; + } + public void setNotiYn(String notiYn) { + this.notiYn = notiYn; + } + public String getOpenYn() { + return openYn; + } + public void setOpenYn(String openYn) { + this.openYn = openYn; + } + public String getPostStartDate() { + return postStartDate; + } + public void setPostStartDate(String postStartDate) { + this.postStartDate = postStartDate; + } + public String getPostEndDate() { + return postEndDate; + } + public void setPostEndDate(String postEndDate) { + this.postEndDate = postEndDate; + } + public int getViewCnt() { + return viewCnt; + } + public void setViewCnt(int viewCnt) { + this.viewCnt = viewCnt; + } + public String getBdAttachFileId() { + return bdAttachFileId; + } + public void setBdAttachFileId(String bdAttachFileId) { + this.bdAttachFileId = bdAttachFileId; + } + public String getRegId() { + return regId; + } + public void setRegId(String regId) { + this.regId = regId; + } + public String getRegDd() { + return regDd; + } + public void setRegDd(String regDd) { + this.regDd = regDd; + } + public String getModId() { + return modId; + } + public void setModId(String modId) { + this.modId = modId; + } + public String getModDd() { + return modDd; + } + public void setModDd(String modDd) { + this.modDd = modDd; + } + + +} diff --git a/src/main/java/nlib/bbs/service/BoardService.java b/src/main/java/nlib/bbs/service/BoardService.java index e2b12a13..0c278593 100644 --- a/src/main/java/nlib/bbs/service/BoardService.java +++ b/src/main/java/nlib/bbs/service/BoardService.java @@ -1,71 +1,43 @@ package nlib.bbs.service; -import nlib.restful.service.DataApiReqVO; -import nlib.restful.service.DataApiResVO; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import nlib.user.service.NlibLoginVO; -/** - *
- * @Class Name : BoardService.java
- * 
- * @Description : 게시물 관리 클래스
- * 
- * 
- * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
- *
- * 
- * - * @ ------------ -------- --------------------------- - * @ 수정일 수정자 수정내용 - * @ ------------ -------- --------------------------- - * @ 2021. 7. 19. KNKIM 최초 생성 - * - * - * @author 이씨플라자 * DIGITALSHIP KNKIM - * @since 2021. 7. 19. - * @version 1.0 - * - */ public interface BoardService { - /** - * 공지사항 - * - * @param reqVO - * @return - */ - public DataApiResVO listNotices(DataApiReqVO reqVO); - public DataApiResVO selectNotice(DataApiReqVO reqVO); - - /** - * 자주하는질문 - * - * @param reqVO - * @return + /* + * 게시글 목록을 조회한다. */ - public DataApiResVO listFAQs(DataApiReqVO reqVO); - - public DataApiResVO selectFAQ(DataApiReqVO reqVO); + public List listArticles(ArticleVO ArticleVO) throws Exception; - /** - * 묻고답하기 - * - * @param reqVO - * @return + /** + * 게시글 건수를 조회한다. */ - public DataApiResVO listQnAs(DataApiReqVO reqVO); + public int countArticles(ArticleVO articleVO) throws Exception; + + /** + * 조회수를 증가시킨다. + * + * @param + * @return + * @throws Exception + */ + public int updateRead(ArticleVO notiVO) throws Exception; + + /** + * 게시글 상세 내용을 조회한다. + * + * @param + * @return + * @throws Exception + */ + public ArticleVO selectArticle(ArticleVO notiVO) throws Exception; - public DataApiResVO selectQnA(DataApiReqVO reqVO); +} - public DataApiResVO insertQnA(DataApiReqVO reqVO); - - public DataApiResVO verifyWriter(DataApiReqVO reqVO); - - public DataApiResVO updateQnA(DataApiReqVO reqVO); - - public DataApiResVO deleteQnA(DataApiReqVO reqVO); - - -} \ No newline at end of file diff --git a/src/main/java/nlib/bbs/service/BoardServiceApi.java b/src/main/java/nlib/bbs/service/BoardServiceApi.java new file mode 100644 index 00000000..d47dece8 --- /dev/null +++ b/src/main/java/nlib/bbs/service/BoardServiceApi.java @@ -0,0 +1,71 @@ + +package nlib.bbs.service; + +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +/** + *
+ * @Class Name : BoardService.java
+ * 
+ * @Description : 게시물 관리 클래스
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 19. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 7. 19. + * @version 1.0 + * + */ +public interface BoardServiceApi +{ + /** + * 공지사항 + * + * @param reqVO + * @return + */ + public DataApiResVO listNotices(DataApiReqVO reqVO); + + public DataApiResVO selectNotice(DataApiReqVO reqVO); + + /** + * 자주하는질문 + * + * @param reqVO + * @return + */ + public DataApiResVO listFAQs(DataApiReqVO reqVO); + + public DataApiResVO selectFAQ(DataApiReqVO reqVO); + + + /** + * 묻고답하기 + * + * @param reqVO + * @return + */ + public DataApiResVO listQnAs(DataApiReqVO reqVO); + + public DataApiResVO selectQnA(DataApiReqVO reqVO); + + public DataApiResVO insertQnA(DataApiReqVO reqVO); + + public DataApiResVO verifyWriter(DataApiReqVO reqVO); + + public DataApiResVO updateQnA(DataApiReqVO reqVO); + + public DataApiResVO deleteQnA(DataApiReqVO reqVO); + + +} \ No newline at end of file diff --git a/src/main/java/nlib/bbs/service/impl/AncmntDAO.java b/src/main/java/nlib/bbs/service/impl/AncmntDAO.java new file mode 100644 index 00000000..721ce74c --- /dev/null +++ b/src/main/java/nlib/bbs/service/impl/AncmntDAO.java @@ -0,0 +1,70 @@ +package nlib.bbs.service.impl; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.stereotype.Repository; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import nlib.cmm.service.NotificationVO; +import nlib.bbs.service.ArticleVO; +import nlib.cmm.service.NlibProperty; +import nlib.user.service.NlibLoginVO; +import nlib.util.StringUtil; + +/** + *
+ * @Class Name : AncmntDAO.java
+ * 
+ * @Description : 공지사항 정보 제공 DAO 
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 9. 13. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 9. 13. + * @version 1.0 + * + */ +@Mapper("ancmntDAO") +public interface AncmntDAO { + + /* + * 게시글 목록을 조회한다. + */ + public List listArticles(ArticleVO ArticleVO) throws Exception; + + + /** + * 게시글 건수를 조회한다. + */ + public int countArticles(ArticleVO ArticleVO) throws Exception; + + /** + * 조회수를 증가시킨다. + * + * @param + * @return + * @throws Exception + */ + public int updateRead(ArticleVO notiVO) throws Exception; + + /** + * 게시글 상세 내용을 조회한다. + * + * @param + * @return + * @throws Exception + */ + public ArticleVO selectArticle(ArticleVO notiVO) throws Exception; +} diff --git a/src/main/java/nlib/bbs/service/impl/AncmntServiceImpl.java b/src/main/java/nlib/bbs/service/impl/AncmntServiceImpl.java new file mode 100644 index 00000000..077c2952 --- /dev/null +++ b/src/main/java/nlib/bbs/service/impl/AncmntServiceImpl.java @@ -0,0 +1,63 @@ +package nlib.bbs.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import nlib.bbs.service.ArticleVO; +import nlib.bbs.service.BoardService; + +@Service("ancmntService") +public class AncmntServiceImpl implements BoardService +{ + private static final Logger log = LoggerFactory.getLogger(AncmntServiceImpl.class); + + @Resource(name="ancmntDAO") + private AncmntDAO ancmntDAO; + + + /* + * 게시글 목록을 조회한다. + */ + public List listArticles(ArticleVO articleVO) throws Exception { + + return ancmntDAO.listArticles(articleVO); + } + + /** + * 게시글 건수를 조회한다. + */ + public int countArticles(ArticleVO articleVO) throws Exception { + + return ancmntDAO.countArticles(articleVO); + } + + + /** + * 조회수를 증가시킨다. + * + * @param + * @return + * @throws Exception + */ + public int updateRead(ArticleVO articleVO) throws Exception { + return ancmntDAO.updateRead(articleVO); + } + + /** + * 게시글 상세 내용을 조회한다. + * + * @param + * @return + * @throws Exception + */ + public ArticleVO selectArticle(ArticleVO articleVO) throws Exception { + updateRead(articleVO); + return ancmntDAO.selectArticle(articleVO); + } + +} \ No newline at end of file diff --git a/src/main/java/nlib/bbs/service/impl/BoardDAO.java b/src/main/java/nlib/bbs/service/impl/BoardDAO.java index 6a032b4e..13b8ee7f 100644 --- a/src/main/java/nlib/bbs/service/impl/BoardDAO.java +++ b/src/main/java/nlib/bbs/service/impl/BoardDAO.java @@ -1,80 +1,70 @@ - package nlib.bbs.service.impl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.springframework.stereotype.Repository; -import nlib.cmm.web.MainController; -import nlib.restful.DataApi; -import nlib.restful.service.DataApiReqVO; -import nlib.restful.service.DataApiResVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import nlib.cmm.service.NotificationVO; +import nlib.bbs.service.ArticleVO; +import nlib.cmm.service.NlibProperty; +import nlib.user.service.NlibLoginVO; +import nlib.util.StringUtil; -@Repository("boardDAO") -public class BoardDAO extends DataApi -{ - private static final Logger log = LoggerFactory.getLogger(BoardDAO.class); +/** + *
+ * @Class Name : AncmntDAO.java
+ * 
+ * @Description : 공지사항 정보 제공 DAO 
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 9. 13. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 9. 13. + * @version 1.0 + * + */ - /** - * 주 자원의 URI +public interface BoardDAO { + + /* + * 게시글 목록을 조회한다. */ - public static final String RESOURCE_URI = "/uac/service/board"; + public List listArticles(ArticleVO ArticleVO) throws Exception; - public DataApiResVO listNotices(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/notice/list"); - return get(reqVO); - } - public DataApiResVO selectNotice(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/notice"); - return get(reqVO); - } - - public DataApiResVO listFAQs(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/faq/list"); - return get(reqVO); - } + /** + * 게시글 건수를 조회한다. + */ + public int countArticles(ArticleVO ArticleVO) throws Exception; - public DataApiResVO selectFAQ(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/faq"); - return get(reqVO); - } - - /** - * 묻고답하기 목록 조회한다. + * 조회수를 증가시킨다. * - * @param reqVO + * @param * @return + * @throws Exception */ - public DataApiResVO listQnAs(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/qna/list"); - return get(reqVO); - } - - public DataApiResVO selectQnA(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/qna"); - return get(reqVO); - } - - public DataApiResVO verifyWriter(DataApiReqVO reqVO) { - return null; - } - - public DataApiResVO updateQnA(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/qna"); - return post(reqVO); - } - - public DataApiResVO deleteQnA(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/qna"); - return delete(reqVO); - } - - public DataApiResVO insertQnA(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/qna"); - return put(reqVO); - } - - -} \ No newline at end of file + public int updateRead(ArticleVO notiVO) throws Exception; + + /** + * 게시글 상세 내용을 조회한다. + * + * @param + * @return + * @throws Exception + */ + public ArticleVO selectArticle(ArticleVO notiVO) throws Exception; +} diff --git a/src/main/java/nlib/bbs/service/impl/BoardDAOApi.java b/src/main/java/nlib/bbs/service/impl/BoardDAOApi.java new file mode 100644 index 00000000..fdd89353 --- /dev/null +++ b/src/main/java/nlib/bbs/service/impl/BoardDAOApi.java @@ -0,0 +1,80 @@ + +package nlib.bbs.service.impl; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Repository; + +import nlib.cmm.web.MainController; +import nlib.restful.DataApi; +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +@Repository("boardDAO") +public class BoardDAOApi extends DataApi +{ + private static final Logger log = LoggerFactory.getLogger(BoardDAOApi.class); + + /** + * 주 자원의 URI + */ + public static final String RESOURCE_URI = "/uac/service/board"; + + public DataApiResVO listNotices(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/notice/list"); + return get(reqVO); + } + + public DataApiResVO selectNotice(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/notice"); + return get(reqVO); + } + + public DataApiResVO listFAQs(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/faq/list"); + return get(reqVO); + } + + public DataApiResVO selectFAQ(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/faq"); + return get(reqVO); + } + + + /** + * 묻고답하기 목록 조회한다. + * + * @param reqVO + * @return + */ + public DataApiResVO listQnAs(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/qna/list"); + return get(reqVO); + } + + public DataApiResVO selectQnA(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/qna"); + return get(reqVO); + } + + public DataApiResVO verifyWriter(DataApiReqVO reqVO) { + return null; + } + + public DataApiResVO updateQnA(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/qna"); + return post(reqVO); + } + + public DataApiResVO deleteQnA(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/qna"); + return delete(reqVO); + } + + public DataApiResVO insertQnA(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/qna"); + return put(reqVO); + } + + +} \ No newline at end of file diff --git a/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java b/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java index 8631bb40..b36d88cb 100644 --- a/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java +++ b/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java @@ -7,17 +7,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; -import nlib.bbs.service.BoardService; +import nlib.bbs.service.BoardServiceApi; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; @Service("boardService") -public class BoardServiceImpl implements BoardService +public class BoardServiceImpl implements BoardServiceApi { private static final Logger log = LoggerFactory.getLogger(BoardServiceImpl.class); @Resource(name = "boardDAO") - private BoardDAO boardDAO; + private BoardDAOApi boardDAO; public DataApiResVO listNotices(DataApiReqVO reqVO) { diff --git a/src/main/java/nlib/bbs/web/AncmntController.java b/src/main/java/nlib/bbs/web/AncmntController.java index 479cdb35..fac6d034 100644 --- a/src/main/java/nlib/bbs/web/AncmntController.java +++ b/src/main/java/nlib/bbs/web/AncmntController.java @@ -10,827 +10,138 @@ import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; -import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import org.springframework.web.servlet.support.RequestContextUtils; import nlib.bbs.service.BoardService; +import nlib.bbs.service.impl.AncmntServiceImpl; +import nlib.bbs.service.ArticleVO; import nlib.cmm.NlibCommonController; -import nlib.cmm.crypto.AriaCrypto; -import nlib.cmm.crypto.NlibPasswordEncoder; -import nlib.cmm.service.CodeService; import nlib.cmm.service.NlibProperty; -import nlib.restful.service.DataApiReqVO; -import nlib.restful.service.DataApiResVO; -import nlib.user.service.NlibLoginVO; import nlib.util.StringUtil; @Controller public class AncmntController extends NlibCommonController { -// private static final Logger log = LoggerFactory.getLogger(AncmntController.class); -// -// static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); -// -// @Resource(name = "boardService") -// private BoardService boardService; -// -// @Resource(name = "nlibPasswordEncoder") -// private NlibPasswordEncoder nlibPasswordEncoder; -// -// @Resource(name = "ariaCrypto") -// private AriaCrypto ariaCrypto; -// -// @Resource(name = "codeService") -// private CodeService codeService; -// -// -// @Autowired -// private AuthenticationManager authenticationManager; -// -// /** -// * 공지사항 목록 화면을 표출한다. -// * -// * @param req -// * @return -// */ -// @RequestMapping("/board/listNotices.do") -// public String listNotices(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception { -// -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); -// String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); -// String articleType = paramMap.get("articleType"); -// String message = paramMap.get("message"); -// -// log.debug("listNotices > pageIndex = " + pageIndex); -// log.debug("listNotices > pageSize = " + pageSize); -// log.debug("listNotices > searchKeyword = " + searchKeyword); -// log.debug("listNotices > articleType = " + articleType); -// log.debug("listNotices > message = " + message); -// -// // 페이징 사이즈 코드 목록 조회 -// List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION"); -// -// // 공지사항 유형 코드 목록 조회 -// List> articleTypeCodes = codeService.listCodes("ARTICLE_TYPE"); -// -// // 반환 정보 -// model.addAttribute("pageIndex" , pageIndex); -// model.addAttribute("pageSize" , pageSize); -// model.addAttribute("searchKeyword", searchKeyword); -// model.addAttribute("pageSizeCodes", pageSizeCodes); -// model.addAttribute("articleTypeCodes", articleTypeCodes); -// model.addAttribute("articleType" , articleType); -// model.addAttribute("message" , message); -// -// return "nlib/board/listNotices"; -// } -// -// /** -// * 공지사항 목록 조회한다. -// * -// * @param req -// * @return -// */ -// @RequestMapping(value="/board/listNoticesAjax.do") -// public ResponseEntity listNoticesAjax(HttpServletRequest req, -// Authentication authentication, @RequestBody Map paramMap) throws Exception { -// -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); -// String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); -// String articleType = paramMap.get("articleType"); -// -// log.debug("listNoticesAjax > pageIndex = " + pageIndex); -// log.debug("listNoticesAjax > pageSize = " + pageSize); -// log.debug("listNoticesAjax > searchKeyword = " + searchKeyword); -// log.debug("listNoticesAjax > articleType = " + articleType); -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); -// reqVO.setPageIndex(pageIndex); -// reqVO.setPageSize(pageSize); -// reqVO.addInfoItem("searchKeyword", searchKeyword); -// reqVO.addInfoItem("articleType", articleType); -// -// // 요청 -// DataApiResVO resVO = boardService.listNotices(reqVO); -// -// //------------------------------- -// // JSON변환 응답 처리 -// //------------------------------- -// // JS-GRID 페이징 처리를 포함한 응답값 처리 -// // {data: [{...}], -// // itemsCount: 255 -// // } -// HashMap retMap = new HashMap(); -// retMap.put("data", resVO.getList()); -// retMap.put("itemsCount", resVO.getRecordTotCount()); -// -// return makeResponseEntityJson(retMap); -// } -// -// /** -// * 공지사항 상세 내용 조회한다. -// * @param req -// * @return -// */ -// @RequestMapping("/board/selectNotice.do") -// public String selectNotice(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception { -// -// // 목록 이동시 전달할 매개변수 -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = paramMap.get("pageIndex"); -// String pageSize = paramMap.get("pageSize"); -// String articleType = paramMap.get("articleType"); -// String message = paramMap.get("message"); -// -// // 게시물 번호 -// String articleNo = paramMap.get("articleNo"); -// -// log.debug("selectNotice > pageIndex = " + pageIndex); -// log.debug("selectNotice > pageSize = " + pageSize); -// log.debug("selectNotice > searchKeyword = " + searchKeyword); -// log.debug("selectNotice > articleNo = " + articleNo); -// log.debug("selectNotice > message = " + message); -// log.debug("selectNotice > articleType = " + articleType); -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); -// reqVO.setPageIndex(pageIndex); -// reqVO.setPageSize(pageSize); -// reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID -// reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 -// -// // 요청 -// DataApiResVO resVO = boardService.selectNotice(reqVO); -// -// // 반환 정보 -// model.addAttribute("articleNo" , articleNo); -// model.addAttribute("article" , resVO.getInfo()); // 게시물 상세 -// model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보 -// model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보 -// model.addAttribute("message" , message); -// model.addAttribute("pageIndex" , pageIndex); -// model.addAttribute("pageSize" , pageSize); -// model.addAttribute("searchKeyword", searchKeyword); -// model.addAttribute("articleType" , articleType); -// -// return "nlib/board/selectNotice"; -// } -// -// /** -// * FAQ 목록 화면을 표출한다. -// * -// * @param req -// * @return -// */ -// @RequestMapping("/board/listFAQs.do") -// public String listFAQs(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception { -// -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); -// String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); -// String message = paramMap.get("message"); -// String faqType = paramMap.get("faqType"); -// -// log.debug("listFAQs > pageIndex = " + pageIndex); -// log.debug("listFAQs > pageSize = " + pageSize); -// log.debug("listFAQs > searchKeyword = " + searchKeyword); -// log.debug("listFAQs > message = " + message); -// log.debug("listFAQs > faqType = " + faqType); -// -// DataApiReqVO reqVOforCode = new DataApiReqVO(); -// reqVOforCode.setAuthKey(createAuthKey(req, authentication)); -// reqVOforCode.setPageIndex(0); -// reqVOforCode.setPageSize(0); -// -// -// // 페이징 사이즈 코드 목록 조회 -// List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION"); -// -// // 유형 코드 목록 조회 -// List> articleTypeCodes = codeService.listCodes("FAQ_TYPE"); -// -// // 반환 정보 -// model.addAttribute("pageIndex" , pageIndex); -// model.addAttribute("pageSize" , pageSize); -// model.addAttribute("searchKeyword", searchKeyword); -// model.addAttribute("pageSizeCodes", pageSizeCodes); -// model.addAttribute("faqTypeCodes" , articleTypeCodes); -// model.addAttribute("message" , message); -// model.addAttribute("faqType" , faqType); -// model.addAttribute("faqType" , faqType); -// -// return "nlib/board/listFAQs"; -// } -// -// -// /** -// * FAQ 목록 조회한다. -// * -// * @param req -// * @return -// */ -// @RequestMapping(value="/board/listFAQsAjax.do") -// public ResponseEntity listFAQsAjax(HttpServletRequest req, -// Authentication authentication, @RequestBody Map paramMap) throws Exception { -// -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); -// String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); -// String faqType = paramMap.get("faqType"); -// -// log.debug("listFAQsAjax > pageIndex = " + pageIndex); -// log.debug("listFAQsAjax > pageSize = " + pageSize); -// log.debug("listFAQsAjax > searchKeyword = " + searchKeyword); -// log.debug("listFAQsAjax > faqType = " + faqType); -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); -// reqVO.setPageIndex(pageIndex); -// reqVO.setPageSize(pageSize); -// reqVO.addInfoItem("searchKeyword", searchKeyword); -// reqVO.addInfoItem("faqType", faqType); -// -// // 요청 -// DataApiResVO resVO = boardService.listFAQs(reqVO); -// -// //------------------------------- -// // JSON변환 응답 처리 -// //------------------------------- -// // JS-GRID 페이징 처리를 포함한 응답값 처리 -// // {data: [{...}], -// // itemsCount: 255 -// // } -// HashMap retMap = new HashMap(); -// retMap.put("data", resVO.getList()); -// retMap.put("itemsCount", resVO.getRecordTotCount()); -// -// return makeResponseEntityJson(retMap); -// } -// -// -// /** -// * 묻고답하기 상세 내용 조회한다. -// * -// * @param req -// * @return -// */ -// @RequestMapping("/board/selectFAQAjax.do") -// public ResponseEntity selectFAQAjax(HttpServletRequest req, Authentication authentication, @RequestBody Map paramMap) throws Exception { -// -// // 게시물 번호 -// String articleNo = paramMap.get("articleNo"); -// -// log.debug("selectQnA > articleNo = " + articleNo); -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); -// reqVO.addInfoItem("boardNo", "FAQ"); // 게시판ID -// reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 -// -// // 요청 -// DataApiResVO resVO = boardService.selectFAQ(reqVO); -// -// // 반환 정보 -// return makeResponseEntityJson(resVO.getInfo()); -// } -// -// /** -// * 묻고답하기 목록 화면을 표출한다. -// * -// * @param req -// * @return -// */ -// @RequestMapping("/board/listQnAs.do") -// public String listQnAs(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception { -// -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); -// String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); -// String message = paramMap.get("message"); -// -// log.debug("listQnAs > pageIndex = " + pageIndex); -// log.debug("listQnAs > pageSize = " + pageSize); -// log.debug("listQnAs > searchKeyword = " + searchKeyword); -// log.debug("listQnAs > message = " + message); -// -// // 페이징 사이즈 코드 목록 조회 -// List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION"); -// -// // 반환 정보 -// model.addAttribute("pageIndex" , pageIndex); -// model.addAttribute("pageSize" , pageSize); -// model.addAttribute("searchKeyword", searchKeyword); -// model.addAttribute("pageSizeCodes", pageSizeCodes); -// model.addAttribute("message" , message); -// -// return "nlib/board/listQnAs"; -// } -// -// /** -// * 묻고답하기 목록 조회한다. -// * -// * @param req -// * @return -// */ -// @RequestMapping(value="/board/listQnAsAjax.do") -// public ResponseEntity listQnAsAjax(HttpServletRequest req, -// Authentication authentication, @RequestBody Map paramMap) throws Exception { -// -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); -// String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); -// -// log.debug("listQnAsAjax > pageIndex = " + pageIndex); -// log.debug("listQnAsAjax > pageSize = " + pageSize); -// log.debug("listQnAsAjax > searchKeyword = " + searchKeyword); -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); -// reqVO.setPageIndex(pageIndex); -// reqVO.setPageSize(pageSize); -// reqVO.addInfoItem("searchKeyword", searchKeyword); -// -// // 요청 -// DataApiResVO resVO = boardService.listQnAs(reqVO); -// -// //------------------------------- -// // JSON변환 응답 처리 -// //------------------------------- -// // JS-GRID 페이징 처리를 포함한 응답값 처리 -// // {data: [{...}], -// // itemsCount: 255 -// // } -// HashMap retMap = new HashMap(); -// retMap.put("data", resVO.getList()); -// retMap.put("itemsCount", resVO.getRecordTotCount()); -// -// return makeResponseEntityJson(retMap); -// } -// -// -// /** -// * 묻고답하기 상세 내용 조회한다. -// * -// * @param req -// * @return -// */ -// @RequestMapping("/board/selectQnA.do") -// public String selectQnA(HttpServletRequest req -// , Authentication authentication -// , @RequestParam Map paramMap -// , ModelMap model) throws Exception { -// -// addParamFromInputFlash(paramMap, req); -// -// // 목록 이동시 전달할 매개변수 -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = paramMap.get("pageIndex"); -// String pageSize = paramMap.get("pageSize"); -// String message = paramMap.get("message"); -// -// // 게시물 번호 -// String articleNo = paramMap.get("articleNo"); -// -// log.debug("selectQnA > pageIndex = " + pageIndex); -// log.debug("selectQnA > pageSize = " + pageSize); -// log.debug("selectQnA > searchKeyword = " + searchKeyword); -// log.debug("selectQnA > articleNo = " + articleNo); -// log.debug("selectQnA > message = " + message); -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); -// reqVO.setPageIndex(pageIndex); -// reqVO.setPageSize(pageSize); -// reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID -// reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 -// -// // 요청 -// DataApiResVO resVO = boardService.selectQnA(reqVO); -// -// // 반환 정보 -// model.addAttribute("articleNo" , articleNo); -// model.addAttribute("article" , resVO.getInfo()); // 게시물 상세 -// model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보 -// model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보 -// model.addAttribute("message" , message); -// model.addAttribute("pageIndex" , pageIndex); -// model.addAttribute("pageSize" , pageSize); -// model.addAttribute("searchKeyword", searchKeyword); -// -// return "nlib/board/selectQnA"; -// } -// -// /** -// * 묻고답하기 글작성화면을 표출한다. -// * -// * @param req -// * @return -// */ -// @RequestMapping("/board/insertQnAForm.do") -// public String insertQnAForm(HttpServletRequest req, Authentication authentication -// , @RequestParam Map paramMap -// , ModelMap model) throws Exception { -// -// // 입력 매개변수 출력 설정 -// addParamsToModel(paramMap, model); -// -// NlibLoginVO loginVO = getNlibLoginVO(authentication); -// if(StringUtil.isEmpty(paramMap.get("regUserName"))) model.addAttribute("regUserName", loginVO.getName()); -// if(StringUtil.isEmpty(paramMap.get("email"))) model.addAttribute("regUserName", loginVO.getEmail()); -// -// return "nlib/board/insertQnAForm"; -// } -// -// /** -// * 묻고답하기 등록 처리한다. -// * -// * @param req -// * @param authentication -// * @param paramMap -// * @param model -// * @return -// */ -// @RequestMapping("/board/insertQnA.do") -// public String insertQnA(HttpServletRequest req -// , Authentication authentication -// , @RequestParam Map paramMap -// , RedirectAttributes redirectAttrs -// , ModelMap model) throws Exception { -// -// NlibLoginVO loginVO = getNlibLoginVO(authentication); -// -// log.debug("paramMap > " + paramMap); -// -// String message = null; -// String authKey = createAuthKey(req, authentication); -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(authKey); -// reqVO.addInfoItem("boardNo" , "QNA"); -// reqVO.addInfoItem("title" , paramMap.get("title")); -// reqVO.addInfoItem("regUserName" , paramMap.get("regUserName")); -// reqVO.addInfoItem("email" , paramMap.get("email")); -// reqVO.addInfoItem("contentQeust", paramMap.get("contentQeust")); -// -// String fileListJsonStr = paramMap.get("fileList"); -// if(fileListJsonStr.startsWith("\"")) fileListJsonStr = fileListJsonStr.substring(1); -// if(fileListJsonStr.endsWith("\"")) fileListJsonStr = fileListJsonStr.substring(0, fileListJsonStr.length()-1); -// fileListJsonStr = fileListJsonStr.replaceAll("\\\\", ""); -// -// log.debug("fileList : " + fileListJsonStr); -// -// /* -// ObjectMapper mapper = new ObjectMapper(); -// List> fileList = null; -// try { -// fileList = mapper.readValue(fileListJsonStr, new TypeReference>>() { -// }); -// -// for (Map map : fileList) { -// MapUtils.debugPrint(System.out, "map", map); -// } -// -// } catch (JsonMappingException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } catch (JsonProcessingException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// -// log.debug("fileMap =" + fileList); -// */ -// reqVO.addInfoItem("fileList", fileListJsonStr); -// -// // 요청 -// DataApiResVO resVO = boardService.insertQnA(reqVO); -// -// // 처리결과 확인 -// if(!resVO.isSuccess()) { -// message = resVO.getResultMessage(); -// redirectAttrs.addFlashAttribute("message", message); -// addParamsToRedirect(paramMap, redirectAttrs, null, "pageIndex,pageSize,searchKeyword"); -// addParamsToRedirect(paramMap, redirectAttrs, null, -// "title,articlePassword," -// + "regDate, regUserName, " -// + "email, contentQeust"); -// -// return "redirect:/board/insertQnAForm.do"; -// } -// -// redirectAttrs.addFlashAttribute("pageSize", paramMap.get("pageSize")); -// redirectAttrs.addFlashAttribute("message", "성공적으로 등록되었습니다."); -// -// return "redirect:/board/listQnAs.do"; -// } -// -// @RequestMapping("/board/verifyWriter.do") -// public String verifyWriter(HttpServletRequest req) throws Exception { -// return "nlib/board/verifyWriter"; -// } -// -// /** -// * 묻고답하기 수정 화면 표출한다. -// * -// * @param req -// * @param authentication -// * @param paramMap -// * @param model -// * @return -// */ -// @RequestMapping("/board/updateQnAForm.do") -// public String updateQnAForm(HttpServletRequest req -// , Authentication authentication -// , @RequestParam Map paramMap -// , ModelMap model -// , RedirectAttributes redirectAttrs -// ) throws Exception { -// -// // 목록 이동시 전달할 매개변수 -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = paramMap.get("pageIndex"); -// String pageSize = paramMap.get("pageSize"); -// -// // 게시물 번호 -// String articleNo = paramMap.get("articleNo"); -// String articlePassword = paramMap.get("articlePassword"); -// -// log.debug("updateQnAForm > pageIndex = " + pageIndex); -// log.debug("updateQnAForm > pageSize = " + pageSize); -// log.debug("updateQnAForm > searchKeyword = " + searchKeyword); -// log.debug("updateQnAForm > articleNo = " + articleNo); -// log.debug("updateQnAForm > articlePassword = " + articlePassword); -// -// if(StringUtil.isEmpty(articlePassword)) { -// redirectAttrs.addFlashAttribute("message", "비밀빈호가 올바르지 않습니다.(U1)"); -// -// addParamsToRedirect(paramMap, redirectAttrs, null, "pageIndex,pageSize,searchKeyword,articleNo"); -// return "redirect:/board/selectQnA.do"; -// } -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); -// reqVO.setPageIndex(pageIndex); -// reqVO.setPageSize(pageSize); -// reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID -// reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 -// -// // 요청 -// DataApiResVO resVO = boardService.selectQnA(reqVO); -// -// // 비밀번호 확인 -// HashMap article = resVO.getInfo(); -// String shaArticlePassword = nlibPasswordEncoder.encode(articlePassword); -// log.debug("updateQnAForm > 입력받은 비밀번호를 SHA256 암호화한 값 : " + shaArticlePassword); -// -// if(!shaArticlePassword.equals(article.get("articlePassword"))) { -// redirectAttrs.addFlashAttribute("message", "비밀번호가 올바르지 않습니다.(U2)"); -// addParamsToRedirect(paramMap, redirectAttrs, null, "pageIndex,pageSize,searchKeyword,articleNo"); -// return "redirect:/board/selectQnA.do"; -// } -// -// // 반환 정보 -// model.addAttribute("articleNo" , articleNo); -// model.addAttribute("article" , resVO.getInfo()); -// -// //------------------------------- -// // 게시글 비밀번호 처리 -// //------------------------------- -// // 비밀번호 : SHA-256 암호화 처리되어 DB에 저장되며, -// // 웹 화면에 표출될 때는 Aria로 articleNo를 Salt값으로 하여 재암호화처리하고 BASE64로 다시 한번 인코딩하여 표출함 -// String encArticlePassword = StringUtil.encodeBase64(ariaCrypto.encode(shaArticlePassword)); -// model.addAttribute("encArticlePassword", encArticlePassword); -// -// // 검색 정보 -// model.addAttribute("pageIndex" , pageIndex); -// model.addAttribute("pageSize" , pageSize); -// model.addAttribute("searchKeyword", searchKeyword); -// -// return "nlib/board/updateQnAForm"; -// } -// -// /** -// * 묻고답하기 수정 처리한다. -// * -// * @param req -// * @param authentication -// * @param paramMap -// * @param model -// * @return -// */ -// @RequestMapping("/board/updateQnA.do") -// public String updateQnA(HttpServletRequest req -// , Authentication authentication -// , @RequestParam Map paramMap -// , RedirectAttributes redirectAttrs -// , ModelMap model) throws Exception { -// -// log.debug("paramMap > " + paramMap); -// -// String message = null; -// String authKey = createAuthKey(req, authentication); -// -// // 목록 이동시 전달할 매개변수 -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = paramMap.get("pageIndex"); -// String pageSize = paramMap.get("pageSize"); -// -// // 게시물 번호 -// String articleNo = paramMap.get("articleNo"); -// -// //------------------------------- -// // 게시글 비밀번호 처리 -// //------------------------------- -// // 비밀번호 : SHA-256 암호화 처리되어 DB에 저장되며, -// // 웹 화면에 표출될 때는 Aria로 articleNo를 Salt값으로 하여 재암호화처리하고 BASE64로 다시 한번 인코딩하여 표출함 -// String encArticlePassword = paramMap.get("encArticlePassword"); -// String checkArticlePassword = ariaCrypto.decode(StringUtil.decodeBase64(encArticlePassword)); -// String articlePassword = paramMap.get("articlePassword"); -// -// //------------------------------- -// // 비밀번호 유효 체크 -// //------------------------------- -// // 기존 정보 조회 -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(authKey); -// reqVO.addInfoItem("articleNo", articleNo); -// -// DataApiResVO resVO = boardService.selectQnA(reqVO); -// String oldArticlePassword = resVO.getInfoItem("articlePassword"); -// if(checkArticlePassword == null || !checkArticlePassword.equals(oldArticlePassword)) { -// redirectAttrs.addFlashAttribute("errorCode", "ERR_BRD_UPDTQNA"); -// redirectAttrs.addFlashAttribute("errorMessage", "잘못된 접근입니다."); -// return "redirect:/alert/showError.do"; -// } -// -// // 새 글비밀번호가 존재하지 않는 경우, 기존 비밀번호 설정 처리 -// if(StringUtil.isEmpty(articlePassword)) { -// articlePassword = checkArticlePassword; -// } -// // 새 글비밀번호가 입력된 경우, SHA256 암호화 처리하여 설정 -// else { -// articlePassword = nlibPasswordEncoder.encode(articlePassword); -// } -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO updateReqVO = new DataApiReqVO(); -// updateReqVO.setAuthKey(authKey); -// updateReqVO.addInfoItem("boardNo" , "QNA"); -// updateReqVO.addInfoItem("articleNo" , articleNo); -// updateReqVO.addInfoItem("title" , paramMap.get("title")); -// updateReqVO.addInfoItem("regUserName" , paramMap.get("regUserName")); -// updateReqVO.addInfoItem("email" , paramMap.get("email")); -// updateReqVO.addInfoItem("contentQeust", paramMap.get("contentQeust")); -// updateReqVO.addInfoItem("articlePassword", articlePassword); // SHA256 글비밀번호 -// -// // 요청 -// DataApiResVO updateResVO = boardService.updateQnA(updateReqVO); -// -// // 처리결과 확인 -// if(!updateResVO.isSuccess()) { -// message = updateResVO.getResultMessage(); -// model.addAttribute("message", message); -// addParamsToModel(paramMap, model, null, "pageIndex,pageSize,searchKeyword,articleNo"); -// addParamsToModel(paramMap, model, "article" -// , "articleNo,articleType," -// + "articleTypeName,title,articlePassword,readCount," -// + "regDate, reguserName, repStats, " -// + "email, contentQeust, " -// + "contentQuestFile"); -// -// return "redirect:/board/updateQnAForm.do"; -// } -// -// // 반환 정보 -// model.addAttribute("articleNo" , updateResVO.getInfoItem("articleNo")); // 신규등록된 게시물 ID -// model.addAttribute("message" , "성공적으로 수정되었습니다."); -// -// // 검색 정보 -// model.addAttribute("pageIndex" , pageIndex); -// model.addAttribute("pageSize" , pageSize); -// model.addAttribute("searchKeyword", searchKeyword); -// -// return "redirect:/board/selectQnA.do"; -// } -// -// /** -// * 묻고답하기 삭제한다. -// * -// * @param req -// * @param authentication -// * @param paramMap -// * @param model -// * @return -// */ -// @RequestMapping("/board/deleteQnA.do") -// public String deleteQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception { -// -// String message = null; -// -// // 목록 이동시 전달할 매개변수 -// String searchKeyword = paramMap.get("searchKeyword"); -// String pageIndex = paramMap.get("pageIndex"); -// String pageSize = paramMap.get("pageSize"); -// -// // 게시물 번호 -// String articleNo = paramMap.get("articleNo"); -// String articlePassword = paramMap.get("articlePassword"); -// -// log.debug("deleteQnA > pageIndex = " + pageIndex); -// log.debug("deleteQnA > pageSize = " + pageSize); -// log.debug("deleteQnA > searchKeyword = " + searchKeyword); -// log.debug("deleteQnA > articleNo = " + articleNo); -// log.debug("deleteQnA > articlePassword = " + articlePassword); -// -// if(StringUtil.isEmpty(articlePassword)) { -// model.addAttribute("message", "글비밀빈호가 올바르지 않습니다.(D1)"); -// addParamsToModel(paramMap, model, null, "pageIndex,pageSize,searchKeyword,articleNo"); -// return "redirect:/board/selectQnA.do"; -// } -// -// //------------------------------- -// // REQ VO 구성 -// //------------------------------- -// DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); -// reqVO.setPageIndex(pageIndex); -// reqVO.setPageSize(pageSize); -// reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID -// reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 -// -// // 요청 -// DataApiResVO resVO = boardService.selectQnA(reqVO); -// -// // 비밀번호 확인 -// HashMap article = resVO.getInfo(); -// String shaArticlePassword = nlibPasswordEncoder.encode(articlePassword); -// log.debug("updateQnAForm > 입력받은 비밀번호를 SHA256 암호화한 값 : " + shaArticlePassword); -// -// if(!shaArticlePassword.equals(article.get("articlePassword"))) { -// model.addAttribute("message", "글비밀번호가 올바르지 않습니다.(D2)"); -// addParamsToModel(paramMap, model, null, "pageIndex,pageSize,searchKeyword,articleNo"); -// return "redirect:/board/selectQnA.do"; -// } -// -// // 삭제 처리 -// DataApiResVO delResVO = boardService.deleteQnA(reqVO); -// -// // 처리결과 확인 -// if(!delResVO.isSuccess()) { -// message = delResVO.getResultMessage(); -// model.addAttribute("message", message); -// addParamsToModel(paramMap, model, null, "pageIndex,pageSize,searchKeyword,articleNo"); -// -// return "redirect:/board/selectQnA.do"; -// } -// -// // 반환 정보 -// model.addAttribute("message" , "성공적으로 삭제되었습니다."); -// -// // 검색 정보 -// model.addAttribute("pageIndex" , pageIndex); -// model.addAttribute("pageSize" , pageSize); -// model.addAttribute("searchKeyword", searchKeyword); -// -// return "redirect:/board/listQnAs.do"; -// } + private static final Logger log = LoggerFactory.getLogger(AncmntController.class); + + static final int DEFUALT_PAGE_SIZE = NlibProperty.getInt("list.paging.page.size", 10); + + @Resource(name = "ancmntService") + //private AncmntServiceImpl ancmntService; + private BoardService ancmntService; + + /** + * 목록 화면을 표시한다. + * + * @param req + * @return + */ + @RequestMapping("/bbs/listAncmnts.do") + public String listAncmnts( + HttpServletRequest req, + @RequestParam Map paramMap, + ArticleVO articleVO, + ModelMap model + ) throws Exception { + + int pageIndex = StringUtil.toNumber(paramMap.get("pageIndex"), 1); + int pageSize = StringUtil.toNumber(paramMap.get("pageSize"), DEFUALT_PAGE_SIZE); + + log.debug("listAncmnt > pageIndex = " + pageIndex); + log.debug("listAncmnt > pageSize = " + pageSize); + + ArticleVO searchArticleVO = new ArticleVO(); + searchArticleVO.setPageIndex(pageIndex); + searchArticleVO.setPageSize(pageSize); + + model.addAttribute("searchArticleVO", searchArticleVO); + model.addAttribute("pageSize", pageSize); + model.addAttribute("pageIndex", pageIndex); + + return "nlib/bbs/listAncmnts"; + } + + /** + * 목록 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/bbs/listAncmntsAjax.do") + public ResponseEntity listAncmntsAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) throws Exception { + + int pageIndex = StringUtil.toNumber(paramMap.get("pageIndex"), 1); + int pageSize = StringUtil.toNumber(paramMap.get("pageSize"), DEFUALT_PAGE_SIZE); + + log.debug("listNotificationsAjax > pageIndex = " + pageIndex); + log.debug("listNotificationsAjax > pageSize = " + pageSize); + + + ArticleVO searchNotificationtVO = new ArticleVO(); + searchNotificationtVO.setPageIndex(pageIndex); + searchNotificationtVO.setPageSize(pageSize); + List list = ancmntService.listArticles(searchNotificationtVO); + + int totRecordCount = ancmntService.countArticles(searchNotificationtVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", list); + retMap.put("itemsCount", totRecordCount); + + return makeResponseEntityJson(retMap); + } + + +// /** +// * 알림 상세 내용 조회한다. +// * +// * @param req +// * @return +// */ +// @RequestMapping("/cmm/selectNotificationAjax.do") +// public ResponseEntity selectNotificationAjax(HttpServletRequest req, Authentication authentication, @RequestBody Map paramMap) throws Exception { +// +// String notiId = paramMap.get("notiId"); // 알림ID +// String pageIndex = paramMap.get("pageIndex"); +// String pageSize = paramMap.get("pageSize"); +// +// log.debug("selectNotificationAjax > notiId = " + notiId); +// +// ArticleVO paramNotiVO = new ArticleVO(); +// paramNotiVO.setNotiId(notiId); +// paramNotiVO.setRecvUserId(getMbInfoId(req)); +// paramNotiVO.setPageIndex(pageIndex); +// paramNotiVO.setPageSize(pageSize); +// +// // 읽음처리 및 상세내용 조회 +// ArticleVO articleVO = ancmntService.selectNotification(paramNotiVO); +// +// //------------------------------- +// // JSON변환 응답 처리 +// //------------------------------- +// // JS-GRID 페이징 처리를 포함한 응답값 처리 +// // {data: [{...}], +// // itemsCount: 255 +// // } +// HashMap retMap = new HashMap(); +// retMap.put("data", articleVO); +// +// return makeResponseEntityJson(retMap); +// } +// } \ No newline at end of file diff --git a/src/main/java/nlib/bbs/web/BoardController.java b/src/main/java/nlib/bbs/web/BoardController.java index b22375f6..4891cae0 100644 --- a/src/main/java/nlib/bbs/web/BoardController.java +++ b/src/main/java/nlib/bbs/web/BoardController.java @@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.web.servlet.support.RequestContextUtils; -import nlib.bbs.service.BoardService; +import nlib.bbs.service.BoardServiceApi; import nlib.cmm.NlibCommonController; import nlib.cmm.crypto.AriaCrypto; import nlib.cmm.crypto.NlibPasswordEncoder; @@ -41,7 +41,7 @@ public class BoardController extends NlibCommonController static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); @Resource(name = "boardService") - private BoardService boardService; + private BoardServiceApi boardService; @Resource(name = "nlibPasswordEncoder") private NlibPasswordEncoder nlibPasswordEncoder; @@ -119,7 +119,6 @@ public class BoardController extends NlibCommonController // REQ VO 구성 //------------------------------- DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize); reqVO.addInfoItem("searchKeyword", searchKeyword); @@ -171,7 +170,6 @@ public class BoardController extends NlibCommonController // REQ VO 구성 //------------------------------- DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize); reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID @@ -216,7 +214,6 @@ public class BoardController extends NlibCommonController log.debug("listFAQs > faqType = " + faqType); DataApiReqVO reqVOforCode = new DataApiReqVO(); - reqVOforCode.setAuthKey(createAuthKey(req, authentication)); reqVOforCode.setPageIndex(0); reqVOforCode.setPageSize(0); @@ -265,7 +262,6 @@ public class BoardController extends NlibCommonController // REQ VO 구성 //------------------------------- DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize); reqVO.addInfoItem("searchKeyword", searchKeyword); @@ -307,7 +303,6 @@ public class BoardController extends NlibCommonController // REQ VO 구성 //------------------------------- DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.addInfoItem("boardNo", "FAQ"); // 게시판ID reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 @@ -372,7 +367,6 @@ public class BoardController extends NlibCommonController // REQ VO 구성 //------------------------------- DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize); reqVO.addInfoItem("searchKeyword", searchKeyword); @@ -428,7 +422,6 @@ public class BoardController extends NlibCommonController // REQ VO 구성 //------------------------------- DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize); reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID @@ -492,13 +485,11 @@ public class BoardController extends NlibCommonController log.debug("paramMap > " + paramMap); String message = null; - String authKey = createAuthKey(req, authentication); //------------------------------- // REQ VO 구성 //------------------------------- DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(authKey); reqVO.addInfoItem("boardNo" , "QNA"); reqVO.addInfoItem("title" , paramMap.get("title")); reqVO.addInfoItem("regUserName" , paramMap.get("regUserName")); @@ -605,7 +596,6 @@ public class BoardController extends NlibCommonController // REQ VO 구성 //------------------------------- DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize); reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID @@ -664,7 +654,6 @@ public class BoardController extends NlibCommonController log.debug("paramMap > " + paramMap); String message = null; - String authKey = createAuthKey(req, authentication); // 목록 이동시 전달할 매개변수 String searchKeyword = paramMap.get("searchKeyword"); @@ -688,7 +677,6 @@ public class BoardController extends NlibCommonController //------------------------------- // 기존 정보 조회 DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(authKey); reqVO.addInfoItem("articleNo", articleNo); DataApiResVO resVO = boardService.selectQnA(reqVO); @@ -712,7 +700,6 @@ public class BoardController extends NlibCommonController // REQ VO 구성 //------------------------------- DataApiReqVO updateReqVO = new DataApiReqVO(); - updateReqVO.setAuthKey(authKey); updateReqVO.addInfoItem("boardNo" , "QNA"); updateReqVO.addInfoItem("articleNo" , articleNo); updateReqVO.addInfoItem("title" , paramMap.get("title")); @@ -790,7 +777,6 @@ public class BoardController extends NlibCommonController // REQ VO 구성 //------------------------------- DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize); reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID diff --git a/src/main/java/nlib/bbs/web/FaqController.java b/src/main/java/nlib/bbs/web/FaqController.java index 8a16c250..5a2fdc22 100644 --- a/src/main/java/nlib/bbs/web/FaqController.java +++ b/src/main/java/nlib/bbs/web/FaqController.java @@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.web.servlet.support.RequestContextUtils; -import nlib.bbs.service.BoardService; +import nlib.bbs.service.BoardServiceApi; import nlib.cmm.NlibCommonController; import nlib.cmm.crypto.AriaCrypto; import nlib.cmm.crypto.NlibPasswordEncoder; @@ -78,7 +78,6 @@ public class FaqController extends NlibCommonController { // log.debug("listFAQs > faqType = " + faqType); // // DataApiReqVO reqVOforCode = new DataApiReqVO(); -// reqVOforCode.setAuthKey(createAuthKey(req, authentication)); // reqVOforCode.setPageIndex(0); // reqVOforCode.setPageSize(0); // @@ -127,7 +126,6 @@ public class FaqController extends NlibCommonController { // // REQ VO 구성 // //------------------------------- // DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); // reqVO.setPageIndex(pageIndex); // reqVO.setPageSize(pageSize); // reqVO.addInfoItem("searchKeyword", searchKeyword); @@ -169,7 +167,6 @@ public class FaqController extends NlibCommonController { // // REQ VO 구성 // //------------------------------- // DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); // reqVO.addInfoItem("boardNo", "FAQ"); // 게시판ID // reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 // diff --git a/src/main/java/nlib/bbs/web/QnaController.java b/src/main/java/nlib/bbs/web/QnaController.java index da7ecb3a..7caafd63 100644 --- a/src/main/java/nlib/bbs/web/QnaController.java +++ b/src/main/java/nlib/bbs/web/QnaController.java @@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.web.servlet.support.RequestContextUtils; -import nlib.bbs.service.BoardService; +import nlib.bbs.service.BoardServiceApi; import nlib.cmm.NlibCommonController; import nlib.cmm.crypto.AriaCrypto; import nlib.cmm.crypto.NlibPasswordEncoder; @@ -78,7 +78,6 @@ public class QnaController extends NlibCommonController // log.debug("listFAQs > faqType = " + faqType); // // DataApiReqVO reqVOforCode = new DataApiReqVO(); -// reqVOforCode.setAuthKey(createAuthKey(req, authentication)); // reqVOforCode.setPageIndex(0); // reqVOforCode.setPageSize(0); // @@ -127,7 +126,6 @@ public class QnaController extends NlibCommonController // // REQ VO 구성 // //------------------------------- // DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); // reqVO.setPageIndex(pageIndex); // reqVO.setPageSize(pageSize); // reqVO.addInfoItem("searchKeyword", searchKeyword); @@ -169,7 +167,6 @@ public class QnaController extends NlibCommonController // // REQ VO 구성 // //------------------------------- // DataApiReqVO reqVO = new DataApiReqVO(); -// reqVO.setAuthKey(createAuthKey(req, authentication)); // reqVO.addInfoItem("boardNo", "FAQ"); // 게시판ID // reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 // diff --git a/src/main/java/nlib/cmm/NlibCommonController.java b/src/main/java/nlib/cmm/NlibCommonController.java index 57ba9504..490fc823 100644 --- a/src/main/java/nlib/cmm/NlibCommonController.java +++ b/src/main/java/nlib/cmm/NlibCommonController.java @@ -59,11 +59,6 @@ public class NlibCommonController { @Resource(name = "loginService") private LoginService _loginService; - /** - * AuthKey 생성 시, 로그인하지 않은 사용자의 AuthKey 생성시 사용되는 접두어 - */ - static final String ANONYMOUS_AUTH_KEY_PREFIX = "GST-"; - private static final int INFO_ID_COUNCIL_CD = 1; /* 현재 지방문화원 코드를 지칭하는 식별자 */ private static final int INFO_ID_COUNCIL_NM = 2; /* 현재 지방문화원 명칭을 지칭하는 식별자 */ @@ -118,7 +113,7 @@ public class NlibCommonController { String mName; HashMap setterNames = new HashMap(); HashMap getterNames = new HashMap(); - final String skipSetterList = "|setIp|setAlerted|setAuthKey|setAuthorityList|"; + final String skipSetterList = "|setIp|setAlerted|setAuthorityList|"; for(Method m : methods) { mName = m.getName(); if(skipSetterList.contains(mName)) continue; @@ -187,44 +182,6 @@ public class NlibCommonController { return (SecUserVO)authentication.getPrincipal(); } - /** - * 통합자료시스템 요청 시, 제공할 사용자정보 auth key 생성 - * - 로그인 한 경우 : 사용자ID를 BASE64로 인코딩한 값 - * - 로그인하지 않은 경우 : GST-세션ID - * - * @param request - * @param authentication - * @return - */ - public String createAuthKey(HttpServletRequest request, Authentication authentication) { - - String userId = null; - String authKey = null; - - if(authentication != null) { - userId = ((NlibLoginVO)authentication.getPrincipal()).getMbInfoId(); - } - - authKey = makeAuthKey(userId, request.getSession().getId()); - - log.debug("createAuthKey > " + authKey); - - return authKey; - } - - public static String makeAuthKey(String userId) { - return makeAuthKey(userId, null); - } - public static String makeAuthKey(String userId, String sessionId) { - - if(nlib.util.StringUtil.isEmpty(userId)) { - if(nlib.util.StringUtil.isNotEmpty(sessionId)) return ANONYMOUS_AUTH_KEY_PREFIX + sessionId; - else return null; - } - - return Base64.getEncoder().encodeToString(userId.getBytes()); - } - public ResponseEntity makeResponseEntityJson(DataApiResVO resVO) { // Convert Json diff --git a/src/main/java/nlib/cmm/web/NotificationController.java b/src/main/java/nlib/cmm/web/NotificationController.java index 0e348e37..a3af649a 100644 --- a/src/main/java/nlib/cmm/web/NotificationController.java +++ b/src/main/java/nlib/cmm/web/NotificationController.java @@ -55,7 +55,7 @@ public class NotificationController extends NlibCommonController { private static final Logger log = LoggerFactory.getLogger(NotificationController.class); - static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); + static final int DEFUALT_PAGE_SIZE = NlibProperty.getInt("list.paging.page.size", 10); @Resource(name="notificationService") private NotificationService notificationService; @@ -75,8 +75,8 @@ public class NotificationController extends NlibCommonController { ) throws Exception { String mbInfoId = getMbInfoId(req); - String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); - String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + int pageIndex = StringUtil.toNumber(paramMap.get("pageIndex"), 1); + int pageSize = StringUtil.toNumber(paramMap.get("pageSize"), DEFUALT_PAGE_SIZE); log.debug("listNotifications > pageIndex = " + pageIndex); log.debug("listNotifications > pageSize = " + pageSize); @@ -92,8 +92,8 @@ public class NotificationController extends NlibCommonController { model.addAttribute("notificationList", list); model.addAttribute("searchNotificationVO", searchNotificationVO); - model.addAttribute("pageSize", NlibProperty.getString("list.paging.page.size")); - model.addAttribute("pageIndex", "1"); + model.addAttribute("pageSize", pageSize); + model.addAttribute("pageIndex", pageIndex); return "nlib/cmm/listNotifications"; @@ -111,7 +111,7 @@ public class NotificationController extends NlibCommonController { String mbInfoId = getMbInfoId(req); String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); - String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + int pageSize = StringUtil.toNumber(paramMap.get("pageSize"), DEFUALT_PAGE_SIZE); log.debug("listNotificationsAjax > pageIndex = " + pageIndex); log.debug("listNotificationsAjax > pageSize = " + pageSize); diff --git a/src/main/java/nlib/info/service/impl/InformServiceImpl.java b/src/main/java/nlib/info/service/impl/InformServiceImpl.java index 978f7223..e6f3de82 100644 --- a/src/main/java/nlib/info/service/impl/InformServiceImpl.java +++ b/src/main/java/nlib/info/service/impl/InformServiceImpl.java @@ -149,13 +149,9 @@ public class InformServiceImpl implements InformService HashMap addrInfo = informDAO.selectNCultureAddr(councilCd); if(addrInfo != null) { - locInfo.put("ZIPCODE", addrInfo.get("")); - locInfo.put("ADDR1", addrInfo.get("ADDR1")); - locInfo.put("ADDR2", addrInfo.get("ADDR2")); - locInfo.put("TEL_NO", addrInfo.get("TEL_NO")); - locInfo.put("FAX_NO", addrInfo.get("FAX_NO")); - locInfo.put("LATITUDE", addrInfo.get("LATITUDE")); - locInfo.put("LONGITUDE", addrInfo.get("LONGITUDE")); + for(String key : addrInfo.keySet()) { + locInfo.put(key, addrInfo.get(key)); + } } return locInfo; diff --git a/src/main/java/nlib/info/web/InformController.java b/src/main/java/nlib/info/web/InformController.java index 464479d2..89db9d14 100644 --- a/src/main/java/nlib/info/web/InformController.java +++ b/src/main/java/nlib/info/web/InformController.java @@ -148,16 +148,16 @@ public class InformController extends NlibCommonController { HashMap ret = informService.selectNCultureLocationInfo(getCurCouncilCd(request)); - model.addAttribute("informTitle", ret.get("TITLE")); + model.addAttribute("informTitle" , ret.get("TITLE")); model.addAttribute("informContent", ret.get("CONTENT")); - model.addAttribute("zipCode", ret.get("ZIPCODE")); - model.addAttribute("addr1", ret.get("ADDR1")); - model.addAttribute("addr2", ret.get("ADDR2")); - model.addAttribute("telNo", ret.get("TEL_NO")); - model.addAttribute("faxNo", ret.get("FAX_NO")); - model.addAttribute("latitude", ret.get("LATITUDE")); - model.addAttribute("longitude", ret.get("LONGITUDE")); + model.addAttribute("zipCode" , ret.get("ZIP_CODE")); + model.addAttribute("address" , ret.get("ADDRESS")); + model.addAttribute("addressDetail", ret.get("ADDRESS_DETAIL")); + model.addAttribute("phoneNo" , ret.get("PHONE_NO")); + model.addAttribute("faxNo" , ret.get("FAX_NO")); + model.addAttribute("latitude" , ret.get("LATITUDE")); + model.addAttribute("longitude" , ret.get("LONGITUDE")); return "nlib/inform/selectNCultureLocationInfo"; } diff --git a/src/main/java/nlib/restful/service/DataApiInterface.java b/src/main/java/nlib/restful/service/DataApiInterface.java index 6bf047b6..804ce6cf 100644 --- a/src/main/java/nlib/restful/service/DataApiInterface.java +++ b/src/main/java/nlib/restful/service/DataApiInterface.java @@ -90,7 +90,6 @@ public interface DataApiInterface { MultiValueMap map = new LinkedMultiValueMap<>(); // 공통 - map.add("authKey", reqVO.getAuthKey()); map.add("rows", "" + reqVO.getPageSize()); map.add("page", "" + reqVO.getPageIndex()); @@ -136,9 +135,6 @@ public interface DataApiInterface { if(StringUtil.isEmpty(reqVO.getReqUrl())) { return new DataApiResVO("ERR_NO_RURL", "데이터 요청 업무ID에 대한 URL/RUI 정보가 존재하지 않습니다."); } - if(StringUtil.isEmpty(reqVO.getAuthKey())) { - return new DataApiResVO("ERR_NO_AUTHKEY", "데이터 요청에 대한 권한키 정보가 존재하지 않습니다."); - } return null; } diff --git a/src/main/java/nlib/restful/service/DataApiReqVO.java b/src/main/java/nlib/restful/service/DataApiReqVO.java index 4febb366..84bc69df 100644 --- a/src/main/java/nlib/restful/service/DataApiReqVO.java +++ b/src/main/java/nlib/restful/service/DataApiReqVO.java @@ -31,9 +31,6 @@ public class DataApiReqVO { public static final int DEFAULT_PAGE_SIZE = 10; public static final int DEFAULT_PAGE_INDEX = 1; - /* 처리결과 */ - private String authKey; /* 로그인키 */ - /* 페이징 정보 */ private int pageIndex = 0; /* 요청 페이지 번호 */ private int pageSize = 0; /* 페이지별 표출할 레코드 수 */ @@ -50,13 +47,6 @@ public class DataApiReqVO { String reqUrl; /* 요청업무ID에 대한 통합시스템의 응답 처리 프로그램 URI */ // GET/SET - public String getAuthKey() { - return authKey; - } - - public void setAuthKey(String authKey) { - this.authKey = authKey; - } public int getPageIndex() { return (pageIndex < 1 ? DEFAULT_PAGE_INDEX : pageIndex); diff --git a/src/main/java/nlib/sample/web/SampleDataApiController.java b/src/main/java/nlib/sample/web/SampleDataApiController.java index d348f7f0..0a5c55f8 100644 --- a/src/main/java/nlib/sample/web/SampleDataApiController.java +++ b/src/main/java/nlib/sample/web/SampleDataApiController.java @@ -67,12 +67,10 @@ public class SampleDataApiController { @RequestMapping("/sample/getSampleInfo.do") public String getSampleInfo(@RequestParam Map commandMap, ModelMap model) throws Exception { - String authKey = (String) commandMap.get("authKey"); String page = (String) commandMap.get("page"); String rows = (String) commandMap.get("rows"); DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setAuthKey(authKey); reqVO.setPageIndex(page); reqVO.setPageSize(rows); diff --git a/src/main/java/nlib/security/SecUserDetailsService.java b/src/main/java/nlib/security/SecUserDetailsService.java index 9986fb16..a697dedb 100644 --- a/src/main/java/nlib/security/SecUserDetailsService.java +++ b/src/main/java/nlib/security/SecUserDetailsService.java @@ -52,12 +52,12 @@ public class SecUserDetailsService implements UserDetailsService { * @see org.springframework.security.core.userdetails.UserDetailsService#loadUserByUsername(java.lang.String) */ @Override - public UserDetails loadUserByUsername(String councilloginUserId) throws UsernameNotFoundException { + public UserDetails loadUserByUsername(String loginUserId) throws UsernameNotFoundException { - SecUserVO secUserVO = secUserDAO.loadUserByUsername(councilloginUserId); + SecUserVO secUserVO = secUserDAO.loadUserByUsername(loginUserId); if(secUserVO == null) { - throw new UsernameNotFoundException(councilloginUserId); + throw new UsernameNotFoundException(loginUserId); } return secUserVO; } diff --git a/src/main/java/nlib/security/SpringSecurityConfig.java b/src/main/java/nlib/security/SpringSecurityConfig.java index 519cb4c0..7859a0ed 100644 --- a/src/main/java/nlib/security/SpringSecurityConfig.java +++ b/src/main/java/nlib/security/SpringSecurityConfig.java @@ -85,6 +85,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/code/**").permitAll() .antMatchers("/homes/**").permitAll() .antMatchers("/homes/**").permitAll() + .antMatchers("/bbs/**").permitAll() .anyRequest().authenticated() .and().formLogin() .loginPage(NlibProperty.getString("login.url")) diff --git a/src/main/java/nlib/user/service/LoginService.java b/src/main/java/nlib/user/service/LoginService.java index 58c76e6d..8175cb60 100644 --- a/src/main/java/nlib/user/service/LoginService.java +++ b/src/main/java/nlib/user/service/LoginService.java @@ -20,7 +20,6 @@ public interface LoginService public final String ERR_CODE_DISABLE = "ERR_CODE_LOGIN_DISABLE"; /* 오류코드 : 계정유효하지 않음 */ public final String ERR_CODE_MISMATCH = "ERR_CODE_LOGIN_MISMATCH"; /* 오류코드 : ID,PW일치하지 않음 */ public final String ERR_CODE_EXC = "ERR_CODE_LOGIN_EXC"; /* 오류코드 : 기타오류 */ - public final String ERR_CODE_REQ_AGREE = "ERR_CODE_REQ_AGREE"; /* 오류코드 : 해당지방문화원 정보제공 동의 필요 */ public final String WRN_CODE_DORMANT = "WRN_CODE_DOMANT"; /* 경고코드 : 휴면계정 */ diff --git a/src/main/java/nlib/user/service/NlibLoginVO.java b/src/main/java/nlib/user/service/NlibLoginVO.java index 7a09ed34..f61c79db 100644 --- a/src/main/java/nlib/user/service/NlibLoginVO.java +++ b/src/main/java/nlib/user/service/NlibLoginVO.java @@ -71,7 +71,6 @@ public class NlibLoginVO implements Serializable { /* 보완 및 기타 사항 */ private String ip; /* 접속IP */ private String authorityList; /* 권한ROLE 리스트 */ - private String authKey; /* RESTful API : 접속인증코드 */ private String error = null; /* 처리 오류코드 */ private String message = null; /* 처리 관련 메시지 */ @@ -108,32 +107,6 @@ public class NlibLoginVO implements Serializable { setBirthday (AriaCrypto.decode(getBirthday())); } - /** - * 로그인인증키값을 리턴한다. 만일 존재하지 않을 경우, userId를 기반으로 인증키를 생성하여 리턴한다. - * 로그인되지 않은 자(userId값이 존재하지 않는경우)에 대해서는 null을 리턴한다. - * - * @return - */ - public String getAndCreateAuthKey() { - return getOrCreateAuthKey(null); - } - - /** - * 로그인인증키값을 리턴한다. 만일 존재하지 않을 경우, userId를 기반으로 인증키를 생성하여 리턴한다. - * 로그인되지 않은 자(userId값이 존재하지 않는경우)에 대해서는 세션ID를 기반으로한 손님용 인증키를 생성하여 리턴한다. - * - * @return - */ - public String getOrCreateAuthKey(String sessionId) { - - if(StringUtil.isNotEmpty(this.authKey)) return this.authKey; - - // AuthKey 생성하여 리턴 - this.authKey = NlibCommonController.makeAuthKey(this.mbInfoId, sessionId); - return this.authKey; - } - - /** * 지방문화원코드+계정의 이름을 리턴한다. (사용자ID:email형식의 LOGIN_USER_ID 정보) * Spring Security 처리 용 @@ -142,7 +115,7 @@ public class NlibLoginVO implements Serializable { */ public String getUsername() { // 로그인하는 지방문화원 코드 + 로그인사용자ID - return StringUtil.getString(getJoinCouncilCd(), "") + "@" + getLoginUserId(); + return getLoginUserId(); } //---------------------------------------------------------------- @@ -365,13 +338,6 @@ public class NlibLoginVO implements Serializable { this.authorityList = authorityList; } - public String getAuthKey() { - return authKey; - } - - public void setAuthKey(String authKey) { - this.authKey = authKey; - } public String getError() { return error; diff --git a/src/main/java/nlib/user/service/impl/LoginServiceImpl.java b/src/main/java/nlib/user/service/impl/LoginServiceImpl.java index f6b51110..a00383c4 100644 --- a/src/main/java/nlib/user/service/impl/LoginServiceImpl.java +++ b/src/main/java/nlib/user/service/impl/LoginServiceImpl.java @@ -132,13 +132,6 @@ public class LoginServiceImpl implements LoginService return ERR_CODE_REQ_MEMBERSHIP; } - // 해당 지방문화원에 미등록된 경우, 정보제공 동의로 이동 처리 필요 - if(StringUtil.isEmpty(nLoginVO.getJoinCouncilCd())) { - oUser.setNlibVO(nLoginVO); - return ERR_CODE_REQ_AGREE; - } - - // Spring Security 로그인처리위한 token 생성하여 로그인 처리 UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(nLoginVO.getUsername(), nLoginVO.getPassword()); NlibLoginVO nlibLoginedVO = loginProcSecurity(req, token); @@ -169,10 +162,9 @@ public class LoginServiceImpl implements LoginService // AuthenticationManager 에 token 을 넘기면 UserDetailsService 가 받아 처리하도록 한다. Authentication authentication = authenticationManager.authenticate(token); - // AuthKey 생성 및 기타 정보 저장 + // 기타 정보 저장 String sessionId = req.getSession().getId(); nlibLoginVO = (NlibLoginVO)authentication.getPrincipal(); - nlibLoginVO.getOrCreateAuthKey(sessionId); // SET AUTHKEY nlibLoginVO.setIp(req.getRemoteAddr()); // 지방문화원 정보 @@ -257,9 +249,7 @@ public class LoginServiceImpl implements LoginService // // AuthenticationManager 에 token 을 넘기면 UserDetailsService 가 받아 처리하도록 한다. // Authentication authentication = authenticationManager.authenticate(token); // -// // AuthKey 등록 // SecUserVO userVO = (SecUserVO)authentication.getPrincipal(); -// userVO.getAndCreateAuthKey(req.getSession().getId()); // SET AUTHKEY // // // 실제 SecurityContext 에 authentication 정보를 등록한다. // SecurityContextHolder.getContext().setAuthentication(authentication); diff --git a/src/main/java/nlib/user/web/LoginController.java b/src/main/java/nlib/user/web/LoginController.java index 694789a1..ee989eb0 100644 --- a/src/main/java/nlib/user/web/LoginController.java +++ b/src/main/java/nlib/user/web/LoginController.java @@ -427,16 +427,11 @@ public class LoginController { return "redirect:" + councilReturnUrl; } - // 휴면계좌 + // 휴면계좌 if(StringUtil.equalsIgnoreCase(loginResult, loginService.WRN_CODE_DORMANT)) { return "redirect:" + NlibProperty.getString("login.dormant.url"); } - // 신규 지방문화원 정보 제공 동의 필요 - if(StringUtil.equalsIgnoreCase(loginResult, loginService.ERR_CODE_REQ_AGREE)) { - return "redirect:" + NlibProperty.getString("login.newcouncil.url"); - } - // SNS 로그인은 정상적이나, NLIB 시스템에 등록되지 않은 사용자 : 회원가입으로 전환 model.addAttribute("error", loginResult); if(StringUtil.equalsIgnoreCase(loginResult, loginService.ERR_CODE_REQ_MEMBERSHIP)) { diff --git a/src/main/resources/egovframework/mapper/config/mapper-config.xml b/src/main/resources/egovframework/mapper/config/mapper-config.xml index 5dc56aa3..51a0648a 100644 --- a/src/main/resources/egovframework/mapper/config/mapper-config.xml +++ b/src/main/resources/egovframework/mapper/config/mapper-config.xml @@ -16,7 +16,8 @@ - + + \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml new file mode 100644 index 00000000..3bb6ae60 --- /dev/null +++ b/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml index 4ea982bb..91fede1a 100644 --- a/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml @@ -33,18 +33,18 @@ - \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml index 3ed50e85..2e5b4cc7 100644 --- a/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml @@ -30,12 +30,9 @@ , B.SNS_TYPE , B.SNS_ID , 'ROLE_USER' AS AUTHORITY_LIST - , C.JOIN_COUNCIL_CD FROM UAC_CLTR_DB.MB_INFO A /* 사용자정보 */ JOIN UAC_CLTR_DB.MB_SNS B /* 사용자 SNS 정보 */ ON A.MB_INFO_ID = B.MB_INFO_ID - LEFT OUTER JOIN UAC_CLTR_DB.MB_SITE /* 가입문화원정보 */ C - ON A.MB_INFO_ID = C.MB_INFO_ID AND C.JOIN_COUNCIL_CD = #{joinCouncilCd} WHERE B.SNS_ID = #{snsId} AND UPPER(SNS_TYPE) = UPPER(#{snsType}) AND B.UNLINK_DD IS NULL /* 연동해제건 제외 */ diff --git a/src/main/resources/egovframework/mapper/nlib/user/SecUserDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/user/SecUserDAO_SQL.xml index a798b363..919f9421 100644 --- a/src/main/resources/egovframework/mapper/nlib/user/SecUserDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/user/SecUserDAO_SQL.xml @@ -31,9 +31,7 @@ FROM UAC_CLTR_DB.MB_INFO A /* 사용자정보 */ JOIN UAC_CLTR_DB.MB_SNS B /* 사용자 SNS 정보 */ ON A.MB_INFO_ID = B.MB_INFO_ID - JOIN UAC_CLTR_DB.MB_SITE /* 가입문화원정보 */ C - ON A.MB_INFO_ID = C.MB_INFO_ID - WHERE CONCAT(C.JOIN_COUNCIL_CD, '@', A.LOGIN_USER_ID) = #{councilloginUserId} + WHERE A.LOGIN_USER_ID = #{loginUserId} LIMIT 1 diff --git a/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp new file mode 100644 index 00000000..17d04529 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp @@ -0,0 +1,216 @@ +<% +/** + *
+ * @Class Name : listAncmnts.jsp
+ * 
+ * @Description : 공지사항 목록 화면을 표출한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 9. 13. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 9. 13. + * @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" %> + +공지사항 + + + + + ${pageTitle} + + + + + + + + + + + +

${pageTitle }

+ + 메시지 : ${message} + + +  
+
+ + + + + + + + +
+ +
+ + + + +
+ + + + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/board/updateQnAForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/board/updateQnAForm.jsp index aafb4ec8..c98e6eb1 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/board/updateQnAForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/board/updateQnAForm.jsp @@ -113,7 +113,6 @@ function fn_update() { 비밀번호
(변경시 입력)
- * 비밀번호 : SHA-256 암호화 처리 후, DB에 저장되며, 웹 화면에 표출될 때는 Aria로 AuthKey를 Salt값으로 하여 재암호화처리하고 BASE64로 다시한번 인코딩하여 표출함 diff --git a/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp b/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp index ee8da69e..daad100a 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp @@ -7,9 +7,7 @@ - ${userName}님의 방문을 환영합니다.
- 귀하의 authKey 값은 "${authKey}"" 입니다.
환영합니다.
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureLocationInfo.jsp b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureLocationInfo.jsp index 1e725ba3..9fade325 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureLocationInfo.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureLocationInfo.jsp @@ -31,7 +31,7 @@ <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> -찾아오시는길 +찾아오시는 길 @@ -50,9 +50,9 @@ ${informContent }
${zipCode }
-${addr1 }
-${addr2 }
-${telNo }
+${address }
+${addressDetail }
+${phoneNo }
${faxNo }

diff --git a/src/main/webapp/WEB-INF/jsp/nlib/sample/getSampleInfo.jsp b/src/main/webapp/WEB-INF/jsp/nlib/sample/getSampleInfo.jsp index 4653235c..5df50bae 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/sample/getSampleInfo.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/sample/getSampleInfo.jsp @@ -62,7 +62,6 @@
 
- authKey :
page :
rows :
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/sample/getSampleInfoForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/sample/getSampleInfoForm.jsp index 25bc85f7..395e544c 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/sample/getSampleInfoForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/sample/getSampleInfoForm.jsp @@ -63,7 +63,6 @@
 
- authKey :
page :
rows :
@@ -84,7 +83,6 @@ 실제 서버로 REQ =============
- authKey :
page :
rows :
diff --git a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp index eca2e963..20dcb569 100644 --- a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp +++ b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp @@ -6,8 +6,9 @@
  • 인사말
  • 이용안내
  • 공지사항
  • +
  • 공지사항(DB)
  • 자주하는질문
  • -
  • 묻고답하기
  • +
  • 묻고답하기
  • 찾아오시는길