diff --git a/src/main/java/nlib/cmm/NlibCommonController.java b/src/main/java/nlib/cmm/NlibCommonController.java index 5fec2fcd..57002657 100644 --- a/src/main/java/nlib/cmm/NlibCommonController.java +++ b/src/main/java/nlib/cmm/NlibCommonController.java @@ -5,7 +5,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -24,6 +26,7 @@ import nlib.bbs.web.BoardController; import nlib.cmm.exception.ErrorMessage; import nlib.restful.service.DataApiResVO; import nlib.security.SecUserVO; +import nlib.user.service.LoginService; import nlib.user.service.NlibLoginVO; import nlib.util.StringUtil; @@ -53,12 +56,17 @@ public class NlibCommonController { private static final Logger log = LoggerFactory.getLogger(BoardController.class); + @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; /* 현재 지방문화원 명칭을 지칭하는 식별자 */ + /** * 스프링 시큐리티 Authentication를 통해서 사용자로그인정보 NlibLoginVO를 리턴한다. * @@ -290,4 +298,41 @@ public class NlibCommonController { return; } + + /** + * 현재 요청(또는 세션)하고 있는 지방문화원 코드를 리턴한다. + * + * @param request + * @return + */ + private String getCurCouncilInfo(HttpServletRequest request, int which) { + + HttpSession session = request.getSession(); + String councilInfo = (String)session.getAttribute( (which == INFO_ID_COUNCIL_CD ? "curCouncilCd" : "curCouncilNm")); + if(StringUtil.isNotEmpty(councilInfo)) { + return councilInfo; + } + + // 지방문화원 코드 확인 + String curCouncilDnsHost = StringUtil.getHostName(request.getRequestURL().toString()); + HashMap councilInfoMap = _loginService.selectCouncilInfoByDnsHost(curCouncilDnsHost); + + String curCouncilCd = councilInfoMap.get("councilCd"); + String curCouncilNm = councilInfoMap.get("councilNm"); + + session.setAttribute("curCouncilNm", curCouncilNm); + session.setAttribute("curCouncilCd", curCouncilCd); + session.setAttribute("curCouncilDnsHost", curCouncilDnsHost); + + return which == INFO_ID_COUNCIL_CD ? curCouncilCd : curCouncilNm; + } + + public String getCurCouncilCd(HttpServletRequest request) { + return getCurCouncilInfo(request, INFO_ID_COUNCIL_CD); + } + + public String getCurCouncilNm(HttpServletRequest request) { + return getCurCouncilInfo(request, INFO_ID_COUNCIL_NM); + } + } diff --git a/src/main/java/nlib/cmm/interceptor/NlibInterceptor.java b/src/main/java/nlib/cmm/interceptor/NlibInterceptor.java new file mode 100644 index 00000000..cf68a43c --- /dev/null +++ b/src/main/java/nlib/cmm/interceptor/NlibInterceptor.java @@ -0,0 +1,72 @@ +package nlib.cmm.interceptor; + +import java.util.HashMap; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import nlib.cmm.service.NlibProperty; +import nlib.user.service.LoginService; +import nlib.util.StringUtil; + +/** + *
+ * @Class Name : NlibInterceptor.java
+ * 
+ * @Description : 소장자료관 인터셉터로써 지방문화원 접속 정보를 세션에 담기위한 기능을 가짐  
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 8. 31. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 8. 31. + * @version 1.0 + * + */ +public class NlibInterceptor extends HandlerInterceptorAdapter { + + private static final Logger log = LoggerFactory.getLogger(NlibInterceptor.class); + + @Resource(name = "loginService") + private LoginService loginService; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + + //--------------------------------------- + // 지방문화원 접속 정보를 세션에 담기 + //--------------------------------------- + HttpSession session = request.getSession(); + String curCouncilCd = (String)session.getAttribute("curCouncilCd"); + if(StringUtil.isEmpty(curCouncilCd)) { + + // 지방문화원 코드 확인 + String curCouncilDnsHost = StringUtil.getHostName(request.getRequestURL().toString()); + HashMap councilInfoMap = loginService.selectCouncilInfoByDnsHost(curCouncilDnsHost); + curCouncilCd = councilInfoMap.get("councilCd"); + if(StringUtil.equals(NlibProperty.getString(""), curCouncilCd)) { + + } + session.setAttribute("curCouncilCd" , curCouncilCd); + session.setAttribute("curCouncilNm" , councilInfoMap.get("councilNm")); + session.setAttribute("curCouncilDnsHost", curCouncilDnsHost); + } + + return true; + } +} + diff --git a/src/main/java/nlib/cmm/service/CodeService.java b/src/main/java/nlib/cmm/service/CodeService.java index 1ab2aea6..96233569 100644 --- a/src/main/java/nlib/cmm/service/CodeService.java +++ b/src/main/java/nlib/cmm/service/CodeService.java @@ -13,4 +13,4 @@ public interface CodeService { public List> listCodes(String iCodeId) throws Exception; -} \ No newline at end of file +} diff --git a/src/main/java/nlib/cmm/service/impl/CodeDAO.java b/src/main/java/nlib/cmm/service/impl/CodeDAO.java index f6a367a1..a359989b 100644 --- a/src/main/java/nlib/cmm/service/impl/CodeDAO.java +++ b/src/main/java/nlib/cmm/service/impl/CodeDAO.java @@ -1,12 +1,34 @@ -package nlib.cmm.service.impl; - -import java.util.HashMap; -import java.util.List; - -import egovframework.rte.psl.dataaccess.mapper.Mapper; - -@Mapper("codeDAO") -public interface CodeDAO { - - public List> listCodes(String iCodeId) throws Exception; -} +package nlib.cmm.service.impl; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +/** + *
+ * @Class Name : CodeDAO.java
+ * 
+ * @Description : 공통코드 조회 DAO 
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 27. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 7. 27. + * @version 1.0 + * + */ +@Mapper("codeDAO") +public interface CodeDAO { + + public List> listCodes(String iCodeId) throws Exception; +} diff --git a/src/main/java/nlib/cmm/session/SessionConfig.java b/src/main/java/nlib/cmm/session/SessionConfig.java index 10a7c5b3..5a5b7760 100644 --- a/src/main/java/nlib/cmm/session/SessionConfig.java +++ b/src/main/java/nlib/cmm/session/SessionConfig.java @@ -4,16 +4,13 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import javax.servlet.annotation.WebListener; -import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.security.core.context.SecurityContext; -import org.springframework.security.core.context.SecurityContextHolder; -import nlib.user.service.impl.LoginServiceImpl; +import egovframework.com.ext.oauth.service.OAuthUniversalUser; import nlib.util.StringUtil; /** @@ -47,8 +44,11 @@ public class SessionConfig implements HttpSessionListener { private static final String DELIMITER = "\t"; /* 세션별 로그인 처리 가능한 정보 목록 */ - private static final Map sessions = new ConcurrentHashMap<>(); + private static final Map loginSessions = new ConcurrentHashMap<>(); + /* 세션별 회원가입 처리 가능한 정보 목록 */ + private static final Map memberSessions = new ConcurrentHashMap<>(); + @Override public void sessionCreated(HttpSessionEvent se) { log.debug("Session sessionCreated (O) : " + se.getSession().getId()); @@ -56,13 +56,28 @@ public class SessionConfig implements HttpSessionListener { @Override public void sessionDestroyed(HttpSessionEvent se) { - log.debug("Session sessionDestroyed (X) : " + se.getSession().getId()); - if(sessions.get(se.getSession().getId()) != null){ - removeLoginInfo(se.getSession().getId()); + String sessionId = se.getSession().getId(); + log.debug("Session sessionDestroyed (X) : " + sessionId); + if(loginSessions.get(sessionId) != null){ + removeLoginInfo(sessionId); + } + if(memberSessions.get(sessionId) != null){ + removeNewMemberInfo(sessionId); } } - + /** + * 지방문화원 해당 세션에 로그인 처리 가능한 SNS유형 및 SNSID 정보를 저장한다. + * + * @param sessionId + * @param snsType + * @param snsId + */ + public static void setLoginInfo(String sessionId, String snsType, String snsId) { + log.debug("setLoginInfo : " + sessionId + ", " + snsType + ", " + snsId); + loginSessions.put(sessionId, StringUtil.getString(snsType, "NONE") + DELIMITER + StringUtil.getString(snsId, "NONE")); + } + /** * 지방문화원 해당 세션에 로그인 처리 가능한 SNS 유형 및 SNS ID 정보를 리턴한다. * 리턴유형 문자열 배열 @@ -76,7 +91,7 @@ public class SessionConfig implements HttpSessionListener { if(StringUtil.isEmpty(sessionId)) return null; - String loginInfo = sessions.get(sessionId); + String loginInfo = loginSessions.get(sessionId); if(StringUtil.isEmpty(loginInfo)) return null; String ret[] = loginInfo.split(DELIMITER); @@ -86,18 +101,6 @@ public class SessionConfig implements HttpSessionListener { return ret; } - /** - * 지방문화원 해당 세션에 로그인 처리 가능한 SNS유형 및 SNSID 정보를 저장한다. - * - * @param sessionId - * @param snsType - * @param snsId - */ - public static void setLoginInfo(String sessionId, String snsType, String snsId) { - log.debug("setLoginInfo : " + sessionId + ", " + snsType + ", " + snsId); - sessions.put(sessionId, StringUtil.getString(snsType, "NONE") + DELIMITER + StringUtil.getString(snsId, "NONE")); - } - /** * 지방문화원 해당 세션에 로그인 처리 가능한 정보를 삭제한다. * (로그인 처리 완료 후 또는 세션 종료 시, 삭제) @@ -108,9 +111,46 @@ public class SessionConfig implements HttpSessionListener { */ public static void removeLoginInfo(String sessionId) { if(StringUtil.isNotEmpty(sessionId)){ - sessions.remove(sessionId); + loginSessions.remove(sessionId); log.debug("removeLoginInfo > sessionId = " + sessionId); } } + /** + * 지방문화원 해당 세션에 회원가입 처리 가능한 SNS유형 및 SNS 프로파일 정보를 저장한다. + * + * @param sessionId + * @param snsType + * @param snsId + */ + public static void setNewMemberInfo(String sessionId, OAuthUniversalUser oUser) { + log.debug("setLoginInfo : " + sessionId + ", " + oUser.getSnsId()); + memberSessions.put(sessionId, oUser); + } + + /** + * 지방문화원 해당 세션에 회원가입 처리 가능한 SNS 유형 및 SNS 프로파일 정보를 리턴한다. + * + * @param sessionId + * @return + */ + public static OAuthUniversalUser getNewMemberInfo(String sessionId) { + if(StringUtil.isEmpty(sessionId)) return null; + return memberSessions.get(sessionId); + } + + /** + * 지방문화원 해당 세션에 회원가입 처리 가능한 정보를 삭제한다. + * (회원가입 처리 완료 후 또는 세션 종료 시, 삭제) + * + * @param sessionId + * @param snsType + * @param snsId + */ + public static void removeNewMemberInfo(String sessionId) { + if(StringUtil.isNotEmpty(sessionId)){ + memberSessions.remove(sessionId); + log.debug("removeNewMemberInfo > sessionId = " + sessionId); + } + } } \ No newline at end of file diff --git a/src/main/java/nlib/info/service/InformService.java b/src/main/java/nlib/info/service/InformService.java index 28df3699..3b51dce6 100644 --- a/src/main/java/nlib/info/service/InformService.java +++ b/src/main/java/nlib/info/service/InformService.java @@ -1,20 +1,61 @@ package nlib.info.service; -import nlib.restful.service.DataApiReqVO; -import nlib.restful.service.DataApiResVO; +import java.util.HashMap; +/** + *
+ * @Class Name : InformService.java
+ * 
+ * @Description : 정보성 컨텐츠를 조회하는 서비스 
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 8. 27. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 8. 27. + * @version 1.0 + * + */ public interface InformService { - public DataApiResVO selectTermsInfo(DataApiReqVO reqVO); - public DataApiResVO selectPrivacyInfo(DataApiReqVO reqVO); + /* + * 이용약관을 조회한다. + */ + public HashMap selectInfoContent(String councilCd, String contentType) throws Exception; + + /* + * 이용약관을 조회한다. + */ + public HashMap selectTermsInfo(String councilCd) throws Exception; - public DataApiResVO selectGreeting(DataApiReqVO reqVO); + /* + * 개인정보처리방침을 조회한다. + */ + public HashMap selectPrivacyInfo(String councilCd) throws Exception; - public DataApiResVO selectNCultureOperationInfo(DataApiReqVO reqVO); + /* + * 인사말을 조회한다. + */ + public HashMap selectGreeting(String councilCd) throws Exception; - public DataApiResVO selectNCultureLocationInfo(DataApiReqVO reqVO); + /* + * 이용안내를 조회한다. + */ + public HashMap> selectNCultureOperationInfo(String councilCd) throws Exception ; + /* + * 찾아오는길 조회한다. + */ + public HashMap selectNCultureLocationInfo(String councilCd) throws Exception; } \ No newline at end of file diff --git a/src/main/java/nlib/info/service/impl/InformDAO.java b/src/main/java/nlib/info/service/impl/InformDAO.java index f9aba5df..f4e32a2f 100644 --- a/src/main/java/nlib/info/service/impl/InformDAO.java +++ b/src/main/java/nlib/info/service/impl/InformDAO.java @@ -1,12 +1,9 @@ package nlib.info.service.impl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Repository; +import java.util.HashMap; +import java.util.List; -import nlib.restful.DataApi; -import nlib.restful.service.DataApiReqVO; -import nlib.restful.service.DataApiResVO; +import egovframework.rte.psl.dataaccess.mapper.Mapper; /** *
@@ -30,69 +27,21 @@ import nlib.restful.service.DataApiResVO;
  * @version 1.0
  *
  */
-@Repository("informDAO")
-public class InformDAO extends DataApi
+@Mapper("informDAO")
+public interface InformDAO
 {
-	private static final Logger log = LoggerFactory.getLogger(InformDAO.class);
 	
 	/**
-	 * 주 자원의 URI  
+	 * 컨텐츠를 조회한다.
+	 * 
+	 * @param reqVO
+	 * @return
 	 */
-	public static final String RESOURCE_URI = "/uac/service/inform";
+	public HashMap selectInfoContent(String conDivAndCounCd) throws Exception;
+
+	public HashMap selectOperationEnv(String councilCd) throws Exception;
 	
-	/**
-	 * 이용약관을 조회한다.
-	 * 
-	 * @param reqVO
-	 * @return
-	 */
-	public DataApiResVO selectTermsInfo(DataApiReqVO reqVO)  {
-		reqVO.setReqUrl(RESOURCE_URI + "/terms");
-		return get(reqVO);
-	}
-
-	/**
-	 * 개인정보처리방침을 조회한다. 
-	 * 
-	 * @param reqVO
-	 * @return
-	 */
-	public DataApiResVO selectPrivacyInfo(DataApiReqVO reqVO)  {
-		reqVO.setReqUrl(RESOURCE_URI + "/privacy");
-		return get(reqVO);
-	}
-
-	/**
-	 * 인사말을 조회한다. 
-	 * 
-	 * @param reqVO
-	 * @return
-	 */
-	public DataApiResVO selectGreeting(DataApiReqVO reqVO)  {
-		reqVO.setReqUrl(RESOURCE_URI + "/greeting");
-		return get(reqVO);
-	}
-
-	/**
-	 * 이용안내를 조회한다. 
-	 * 
-	 * @param reqVO
-	 * @return
-	 */
-	public DataApiResVO selectNCultureOperationInfo(DataApiReqVO reqVO)  {
-		reqVO.setReqUrl(RESOURCE_URI + "/operation");
-		return get(reqVO);
-	}
-
-	/**
-	 * 찾아오는길 조회한다. 
-	 * 
-	 * @param reqVO
-	 * @return
-	 */
-	public DataApiResVO selectNCultureLocationInfo(DataApiReqVO reqVO)  {
-		reqVO.setReqUrl(RESOURCE_URI + "/location");
-		return get(reqVO);
-	}
-
-}
\ No newline at end of file
+	public HashMap selectNCultureAddr(String councilCd) throws Exception;
+	
+	
+}
diff --git a/src/main/java/nlib/info/service/impl/InformServiceImpl.java b/src/main/java/nlib/info/service/impl/InformServiceImpl.java
index d9b9db6b..978f7223 100644
--- a/src/main/java/nlib/info/service/impl/InformServiceImpl.java
+++ b/src/main/java/nlib/info/service/impl/InformServiceImpl.java
@@ -8,15 +8,17 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
+import nlib.cmm.service.NlibProperty;
 import nlib.info.service.InformService;
 import nlib.restful.service.DataApiReqVO;
 import nlib.restful.service.DataApiResVO;
+import nlib.util.StringUtil;
 
 /**
  * 
  * @Class Name : InformServiceImpl.java
  * 
- * @Description : 이용안내 및 약관관련 정보 제공 서비스
+ * @Description : 정보성 컨텐츠를 조회하는 서비스 
  * 
  * 
  * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
@@ -48,10 +50,29 @@ public class InformServiceImpl implements InformService
 	 * (non-Javadoc)
 	 * @see nlib.info.service.InformService#selectTermsInfo(nlib.restful.service.DataApiReqVO)
 	 */
-	public DataApiResVO selectTermsInfo(DataApiReqVO reqVO)  {
+	public HashMap selectInfoContent(String councilCd, String contentType) throws Exception {
 		
-		DataApiResVO resVO= informDAO.selectTermsInfo(reqVO);
-		return resVO;
+		if(StringUtil.isEmpty(councilCd)) councilCd = NlibProperty.getString("nlib.council.cd");
+		
+		HashMap ret = informDAO.selectInfoContent(contentType + "@" + councilCd); // conDivAndCounCd
+		if(ret == null) {
+			ret = new HashMap();
+			ret.put("TITLE", "(없음)");
+			ret.put("CONTENT", "(해당 자료가 존재하지 않습니다.)");
+		}
+		
+		return ret;
+	}
+	
+	/* 
+	 * 이용약관을 조회한다. 
+	 * 
+	 * (non-Javadoc)
+	 * @see nlib.info.service.InformService#selectTermsInfo(nlib.restful.service.DataApiReqVO)
+	 */
+	public HashMap  selectTermsInfo(String councilCd) throws Exception {
+		
+		return selectInfoContent(councilCd, "TERMS");
 	}
 
 	/* 
@@ -60,10 +81,9 @@ public class InformServiceImpl implements InformService
 	 * (non-Javadoc)
 	 * @see nlib.info.service.InformService#selectPrivacyInfo(nlib.restful.service.DataApiReqVO)
 	 */
-	public DataApiResVO selectPrivacyInfo(DataApiReqVO reqVO)  {
+	public HashMap  selectPrivacyInfo(String councilCd) throws Exception {
 
-		DataApiResVO resVO= informDAO.selectPrivacyInfo(reqVO);
-		return resVO;
+		return selectInfoContent(councilCd, "PRIVACY");
 	}
 
 	/* 
@@ -72,10 +92,9 @@ public class InformServiceImpl implements InformService
 	 * (non-Javadoc)
 	 * @see nlib.info.service.InformService#selectGreeting(nlib.restful.service.DataApiReqVO)
 	 */
-	public DataApiResVO selectGreeting(DataApiReqVO reqVO)  {
+	public HashMap selectGreeting(String councilCd) throws Exception {
 
-		DataApiResVO resVO= informDAO.selectGreeting(reqVO);
-		return resVO;
+		return selectInfoContent(councilCd, "GREETING");
 	}
 
 	/* 
@@ -84,10 +103,38 @@ public class InformServiceImpl implements InformService
 	 * (non-Javadoc)
 	 * @see nlib.info.service.InformService#selectNCultureOperationInfo(nlib.restful.service.DataApiReqVO)
 	 */
-	public DataApiResVO selectNCultureOperationInfo(DataApiReqVO reqVO)  {
+	public HashMap> selectNCultureOperationInfo(String councilCd) throws Exception {
 
-		DataApiResVO resVO= informDAO.selectNCultureOperationInfo(reqVO);
-		return resVO;
+		HashMap> operationInfo = new HashMap>();
+		
+		HashMap envValues = informDAO.selectOperationEnv(councilCd);
+		
+		//-----------------------------
+		// 전체 문화원 공통 사항 
+		//-----------------------------
+		HashMap operation1 = selectInfoContent(NlibProperty.getString("nlib.council.cd"), "OPERATION1");
+		if(envValues != null && operation1 != null && operation1.get("CONTENT") != null) {
+			String content = operation1.get("CONTENT");
+			for(String key : envValues.keySet()) {
+				content = content.replaceAll("%" + key + "%", StringUtil.getString(envValues.get(key), ""));
+			}
+			operation1.put("CONTENT", content);
+		}
+		
+		HashMap operation2 = selectInfoContent(NlibProperty.getString("nlib.council.cd"), "OPERATION2");
+		HashMap operation3 = selectInfoContent(NlibProperty.getString("nlib.council.cd"), "OPERATION3");
+		
+		//-----------------------------
+		// 해당 문화원 특정 사항 
+		//-----------------------------
+		HashMap operation4 = selectInfoContent(councilCd, "OPERATION4");
+		
+		operationInfo.put("OPERATION1", operation1);
+		operationInfo.put("OPERATION2", operation2);
+		operationInfo.put("OPERATION3", operation3);
+		operationInfo.put("OPERATION4", operation4);
+		
+		return operationInfo;
 	}
 
 	/* 
@@ -96,11 +143,22 @@ public class InformServiceImpl implements InformService
 	 * (non-Javadoc)
 	 * @see nlib.info.service.InformService#selectNCultureLocationInfo(nlib.restful.service.DataApiReqVO)
 	 */
-	public DataApiResVO selectNCultureLocationInfo(DataApiReqVO reqVO)  {
+	public HashMap selectNCultureLocationInfo(String councilCd) throws Exception {
 
-		DataApiResVO resVO= informDAO.selectNCultureLocationInfo(reqVO);
-		return resVO;
+		HashMap locInfo = selectInfoContent(councilCd, "LOCATION");
+		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"));
+		}
+		
+		return locInfo;
 	}
-
-
+	
 }
\ No newline at end of file
diff --git a/src/main/java/nlib/info/web/InformController.java b/src/main/java/nlib/info/web/InformController.java
index 8c7b433b..464479d2 100644
--- a/src/main/java/nlib/info/web/InformController.java
+++ b/src/main/java/nlib/info/web/InformController.java
@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import nlib.cmm.NlibCommonController;
+import nlib.cmm.service.NlibProperty;
 import nlib.info.service.InformService;
 import nlib.info.service.impl.InformServiceImpl;
 import nlib.restful.service.DataApiReqVO;
@@ -61,21 +62,12 @@ public class InformController extends NlibCommonController {
 	 * @return
 	 */
 	@RequestMapping("/inform/selectTermsInfo.do")
-	public String selectTermsInfo(HttpServletRequest req, Authentication authentication, ModelMap model)  {
+	public String selectTermsInfo(HttpServletRequest request, ModelMap model) throws Exception {
 
-		log.debug("selectTermsInfo : init");
+    	HashMap ret = informService.selectTermsInfo(NlibProperty.getString("nlib.council.cd"));
 
-		//-------------------------------
-		// REQ VO 구성 
-		//-------------------------------
-    	DataApiReqVO reqVO = new DataApiReqVO();
-    	reqVO.setAuthKey(createAuthKey(req, authentication));
-
-    	// 요청 
-    	DataApiResVO resVO = informService.selectTermsInfo(reqVO);
-
-    	// 반환 정보 
-    	model.addAttribute("informContent", resVO.getInfoItem("informContent"));
+    	model.addAttribute("informTitle", ret.get("TITLE"));
+    	model.addAttribute("informContent", ret.get("CONTENT"));
 
 		return "nlib/inform/selectTermsInfo";
 	}
@@ -89,21 +81,12 @@ public class InformController extends NlibCommonController {
 	 * @return
 	 */
 	@RequestMapping("/inform/selectPrivacyInfo.do")
-	public String selectPrivacyInfo(HttpServletRequest req, Authentication authentication, ModelMap model)  {
+	public String selectPrivacyInfo(HttpServletRequest request, Authentication authentication, ModelMap model) throws Exception {
 
-		log.debug("selectPrivacyInfo : init");
+    	HashMap ret = informService.selectPrivacyInfo(NlibProperty.getString("nlib.council.cd"));
 
-		//-------------------------------
-		// REQ VO 구성 
-		//-------------------------------
-    	DataApiReqVO reqVO = new DataApiReqVO();
-    	reqVO.setAuthKey(createAuthKey(req, authentication));
-
-    	// 요청 
-    	DataApiResVO resVO = informService.selectPrivacyInfo(reqVO);
-
-    	// 반환 정보 
-    	model.addAttribute("informContent", resVO.getInfoItem("informContent"));
+    	model.addAttribute("informTitle", ret.get("TITLE"));
+    	model.addAttribute("informContent", ret.get("CONTENT"));
 
 		return "nlib/inform/selectPrivacyInfo";
 	}
@@ -117,22 +100,14 @@ public class InformController extends NlibCommonController {
 	 * @return
 	 */
 	@RequestMapping("/inform/selectGreeting.do")
-	public String selectGreeting(HttpServletRequest req, Authentication authentication, ModelMap model)  {
-		log.debug("selectGreeting : init");
+	public String selectGreeting(HttpServletRequest request, Authentication authentication, ModelMap model) throws Exception {
 
-		//-------------------------------
-		// REQ VO 구성 
-		//-------------------------------
-    	DataApiReqVO reqVO = new DataApiReqVO();
-    	reqVO.setAuthKey(createAuthKey(req, authentication));
+		
+    	HashMap ret = informService.selectGreeting(getCurCouncilCd(request));
 
-    	// 요청 
-    	DataApiResVO resVO = informService.selectGreeting(reqVO);
-
-    	// 반환 정보 
-    	model.addAttribute("deptName", resVO.getInfoItem("deptName"));
-    	model.addAttribute("logoUrl", resVO.getInfoItem("logoUrl"));
-    	model.addAttribute("informContent", resVO.getInfoItem("informContent"));
+    	model.addAttribute("informTitle", ret.get("TITLE"));
+    	model.addAttribute("informContent", ret.get("CONTENT"));
+    	model.addAttribute("councilNm", getCurCouncilNm(request));
 
 		return "nlib/inform/selectGreeting";
 	}
@@ -146,23 +121,19 @@ public class InformController extends NlibCommonController {
 	 * @return
 	 */
 	@RequestMapping("/inform/selectNCultureOperationInfo.do")
-	public String selectNCultureOperationInfo(HttpServletRequest req, Authentication authentication, ModelMap model)  {
-		log.debug("selectNCultureOperationInfo : init");
+	public String selectNCultureOperationInfo(HttpServletRequest request, Authentication authentication, ModelMap model) throws Exception {
 
-		//-------------------------------
-		// REQ VO 구성 
-		//-------------------------------
-    	DataApiReqVO reqVO = new DataApiReqVO();
-    	reqVO.setAuthKey(createAuthKey(req, authentication));
+    	HashMap> ret = informService.selectNCultureOperationInfo(getCurCouncilCd(request));
 
-    	// 요청 
-    	DataApiResVO resVO = informService.selectNCultureOperationInfo(reqVO);
-
-    	// 반환 정보 
-    	model.addAttribute("informContent", resVO.getInfoItem("informContent"));
+    	model.addAttribute("informTitle",    ret.get("TITLE"));
+    	if(ret.get("OPERATION1") != null) model.addAttribute("informContent1", ((HashMap)ret.get("OPERATION1")).get("CONTENT"));
+    	if(ret.get("OPERATION2") != null) model.addAttribute("informContent2", ((HashMap)ret.get("OPERATION2")).get("CONTENT"));
+    	if(ret.get("OPERATION3") != null) model.addAttribute("informContent3", ((HashMap)ret.get("OPERATION3")).get("CONTENT"));
+    	if(ret.get("OPERATION4") != null) model.addAttribute("informContent4", ((HashMap)ret.get("OPERATION4")).get("CONTENT"));
 
 		return "nlib/inform/selectNCultureOperationInfo";
 	}
+	
 
 	/**
 	 * 찾아오는길 조회한다. 
@@ -173,26 +144,21 @@ public class InformController extends NlibCommonController {
 	 * @return
 	 */
 	@RequestMapping("/inform/selectNCultureLocationInfo.do")
-	public String selectNCultureLocationInfo(HttpServletRequest req, Authentication authentication, ModelMap model)  {
-		log.debug("selectNCultureLocationInfo : init");
+	public String selectNCultureLocationInfo(HttpServletRequest request, Authentication authentication, ModelMap model) throws Exception {
 
-		//-------------------------------
-		// REQ VO 구성 
-		//-------------------------------
-    	DataApiReqVO reqVO = new DataApiReqVO();
-    	reqVO.setAuthKey(createAuthKey(req, authentication));
+    	HashMap ret = informService.selectNCultureLocationInfo(getCurCouncilCd(request));
 
-    	// 요청 
-    	DataApiResVO resVO = informService.selectNCultureLocationInfo(reqVO);
-
-    	// 반환 정보 
-    	model.addAttribute("informContent", resVO.getInfoItem("informContent"));
-    	model.addAttribute("zipcode", resVO.getInfoItem("zipcode"));
-    	model.addAttribute("addr1", resVO.getInfoItem("addr1"));
-    	model.addAttribute("addr2", resVO.getInfoItem("addr2"));
-    	model.addAttribute("tel", resVO.getInfoItem("tel"));
-    	model.addAttribute("fax", resVO.getInfoItem("fax"));
+    	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"));
+
 		return "nlib/inform/selectNCultureLocationInfo";
 	}
 
@@ -205,25 +171,12 @@ public class InformController extends NlibCommonController {
 	 * @return
 	 */
 	@RequestMapping("/inform/selectNCultureLocationInfoPopup.do")
-	public String selectNCultureLocationInfoPopup(HttpServletRequest req, Authentication authentication, ModelMap model)  {
-		log.debug("selectNCultureLocationInfo : init");
+	public String selectNCultureLocationInfoPopup(HttpServletRequest request, Authentication authentication, ModelMap model) throws Exception {
 
-		//-------------------------------
-		// REQ VO 구성 
-		//-------------------------------
-    	DataApiReqVO reqVO = new DataApiReqVO();
-    	reqVO.setAuthKey(createAuthKey(req, authentication));
+    	HashMap ret = informService.selectNCultureLocationInfo(getCurCouncilCd(request));
 
-    	// 요청 
-    	DataApiResVO resVO = informService.selectNCultureLocationInfo(reqVO);
-
-    	// 반환 정보 
-    	model.addAttribute("informContent", resVO.getInfoItem("informContent"));
-    	model.addAttribute("zipcode", resVO.getInfoItem("zipcode"));
-    	model.addAttribute("addr1", resVO.getInfoItem("addr1"));
-    	model.addAttribute("addr2", resVO.getInfoItem("addr2"));
-    	model.addAttribute("tel", resVO.getInfoItem("tel"));
-    	model.addAttribute("fax", resVO.getInfoItem("fax"));
+    	model.addAttribute("informTitle", ret.get("TITLE"));
+    	model.addAttribute("informContent", ret.get("CONTENT"));
     	
 		return "nlib/inform/selectNCultureLocationInfoPopup";
 	}
diff --git a/src/main/java/nlib/user/web/LoginController.java b/src/main/java/nlib/user/web/LoginController.java
index ddc097cf..f343df4f 100644
--- a/src/main/java/nlib/user/web/LoginController.java
+++ b/src/main/java/nlib/user/web/LoginController.java
@@ -62,6 +62,11 @@ import nlib.util.StringUtil;
 @Controller
 public class LoginController {
 	
+	public LoginController() {
+		super();
+		log.debug("==========================> LoginController Create : !!!! " + (new java.util.Date()));
+	}
+	
 	private static final Logger log = LoggerFactory.getLogger(LoginController.class);
 	
 	//-------------------------------------------
@@ -106,7 +111,14 @@ public class LoginController {
 		String councilHomeUrl = url.replaceAll(req.getRequestURI(), "") + req.getContextPath();
 		String councilReturnUrl = councilHomeUrl + (StringUtil.isEmpty(returnUrl) ? "/" : returnUrl);
 		String councilDnsHost = StringUtil.getHostName(url);
-		
+
+		RequestCache cache = new HttpSessionRequestCache();
+		SavedRequest savedRequest = cache.getRequest(req, res);
+		if (savedRequest != null) {
+			councilReturnUrl = savedRequest.getRedirectUrl();
+			log.debug("loginCouncil > HttpSessionRequestCache에서 획득 councilReturnUrl = " + councilReturnUrl);				
+		}
+
 		// returnUrl 정보 설정 
 //		if(StringUtil.isEmpty(returnUrl)) {
 //			RequestCache cache = new HttpSessionRequestCache();
diff --git a/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml
new file mode 100644
index 00000000..dd9efa58
--- /dev/null
+++ b/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml
@@ -0,0 +1,49 @@
+
+
+
+
+ 	
+ 	
+ 	
+ 	  
+    
+ 	
+ 	
+
\ No newline at end of file
diff --git a/src/main/resources/nlib/nlib.properties b/src/main/resources/nlib/nlib.properties
index fb44219a..dea2a43b 100644
--- a/src/main/resources/nlib/nlib.properties
+++ b/src/main/resources/nlib/nlib.properties
@@ -28,6 +28,15 @@ login.back.url = /login/loginForm.do
 # \uc9c0\ubc29\ubb38\ud654\uc6d0\uc5d0\uc11c \uc811\uc18d\uc2dc \ub9ac\ub2e4\uc774\ub809\ud2b8\ub420 URL \uc815\ubcf4 
 nculture.login.redirect.url = http://nlib.nculture.org/nlib/login/loginForm.do  
 
+#----------------------------------------
+# NLIB \uc9c0\ubc29\ubb38\ud654\uc6d0\uc815\ubcf4 
+#----------------------------------------
+# \uacf5\ud1b5 \uc9c0\ubc29\ubb38\ud654\uc6d0\uc815\ubcf4 \ucf54\ub4dc 
+nlib.council.cd = KCCF
+nlib.council.nm = \uc18c\uc7a5\uc790\ub8cc\uad00
+nlib.council.dns.host = nlib
+
+
 #----------------------------------------
 # DataAPI \uc811\uc18d\uc815\ubcf4 
 #----------------------------------------
diff --git a/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml b/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml
index af994099..043ea1c2 100644
--- a/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml
+++ b/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml
@@ -28,6 +28,7 @@
         
             
                 
+                
             
         
     
@@ -38,6 +39,9 @@
         
     
 
+    
+    
+    
 
-
-
- -
-
-
${informContent }
- +
+
+
+

네이버 맵

+
+
+
+ +  
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureOperationInfo.jsp b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureOperationInfo.jsp index 3f0acd0b..d9108461 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureOperationInfo.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureOperationInfo.jsp @@ -42,8 +42,28 @@

${pageTitle }

+
+대출안내
-${informContent } +${informContent1 } +
+ +
+반납안내 +
+${informContent2 } +
+ +
+열람안내 +
+${informContent3 } +
+ +
+온라인열람서비스 +
+${informContent4 }
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectPrivacyInfo.jsp b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectPrivacyInfo.jsp index d2dc31ce..58f5b0cf 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectPrivacyInfo.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectPrivacyInfo.jsp @@ -40,7 +40,7 @@ -

${pageTitle }

+

${informTitle }

${informContent } diff --git a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectTermsInfo.jsp b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectTermsInfo.jsp index 6713efa8..2009b0f4 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectTermsInfo.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectTermsInfo.jsp @@ -40,7 +40,7 @@ -

${pageTitle }

+

${informTitle }

${informContent } diff --git a/src/main/webapp/WEB-INF/tiles/inc/header.jsp b/src/main/webapp/WEB-INF/tiles/inc/header.jsp index 090ad4e9..14a73a28 100644 --- a/src/main/webapp/WEB-INF/tiles/inc/header.jsp +++ b/src/main/webapp/WEB-INF/tiles/inc/header.jsp @@ -6,6 +6,9 @@ <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%> +<% + +%> ';">온라인자료대출관리 (<%=session.getAttribute("councilHomeUrl") %>)