diff --git a/src/main/java/geoinfo/main/login/LoginController.java b/src/main/java/geoinfo/main/login/LoginController.java index 0408b5f3..a9424e2d 100644 --- a/src/main/java/geoinfo/main/login/LoginController.java +++ b/src/main/java/geoinfo/main/login/LoginController.java @@ -58,6 +58,7 @@ import egovframework.com.cmm.EgovMessageSource; import egovframework.com.cmm.service.EgovProperties; import egovframework.rte.psl.dataaccess.util.EgovMap; import geoinfo.com.GeoinfoCommon; +import geoinfo.drilling.input.service.DrillingInputService; import geoinfo.main.login.service.LoginService; import geoinfo.main.main.MainController; import geoinfo.map.mapControl.service.MapControlService; @@ -80,6 +81,9 @@ public class LoginController { @Resource(name = "loginService") private LoginService loginService; + @Resource(name = "drillingInputService") + DrillingInputService drillingInputService; + @Resource(name="egovMessageSource") EgovMessageSource egovMessageSource; @@ -802,7 +806,7 @@ public class LoginController { // 로그인 횟수 제한 : 10분설정시 1/(24*6) 5분설정시 1/(24*12) map.put("userid", userid); Map selectWebMemberIn = loginService.selectWebMemberIn(map); - + cls = selectWebMemberIn.get("cls").toString(); boolean adminYn = false; @@ -1041,72 +1045,93 @@ public class LoginController { } else { - - // 로그인 성공시 실패회수 초기화 - map.put("loginCount", 0); - map.put("userid", userid); - loginService.pswdResetWebMemberIn(map); - - //최초 1회 지자체 사용자 인증 여부 - liq_yn = selectWebMemberIn.get("liq_yn").toString(); - map.put("liq_yn", liq_yn); - - // 2018-08-27 중복 로그인 방지. - // 2018-11-29. admin_user계정은 중복방지에서 제거 - // admin_user가 아닐 경우에만 세션 중복 방지 적용. - if (!adminYn && loginFlag) { - session.setAttribute("userId", id); - - String sessionId = session.getId(); - mv.addObject("sessionId", sessionId); - mv.addObject("name", session.getAttribute("userId")); - - dupLoginCheck(userid); - users.put(userid, session); - - // GeoInfoSessionMgrListener listener = new GeoInfoSessionMgrListener(); - // request.getSession().setAttribute(userid , listener); - } - - // 분기별 1회 비밀번호 공지 안내 - String strpswd_month = (String)selectWebMemberIn.get("PSWD_LIMIT"); - System.out.println(" 비밀번호 변경일자 - " + strpswd_month); - if (strpswd_month != null && ! "".equals(strpswd_month) ) { - int intpswd_month = Integer.parseInt(strpswd_month); - // 3개월마다 1번씩 비밀번호 변경 안내를 띄운다. - if ( intpswd_month >= 3 ) { - request.getSession().setAttribute("pswd_month", "Y"); - } - } - - if (cls.equals("1")) { - if (location.equals("left")) - url = "left.do"; - else if (location.equals("main")) - url = "main.do"; - else if (location.equals("left_sitemap")) - url = "home/main_sitemap.jsp"; - else - url = "index.do?cntyn=0"; - } else if (cls.equals("2")) { // 발주기관일경우 - if (location.equals("left")) - url = "left.do"; - else - url = "drilling/index.do"; - } else if (cls.equals("9")) { // 관리자일경우 - if (location.equals("left")) - url = "left.do"; - else - url = "index.do?cntyn"; + // 국토부 소속+산하기관 계정만 로그인 허용(국토부소속+산하기관:GL_CODE = 01) + HashMap userGMap = drillingInputService.getOrganizationUserGlGmGsGfCodes(userid); + String glCode = MyUtil.getStringFromObject( userGMap.get("v_gl") ); + if (!"01".equals(glCode)) { + msg = ""; + url = "index.do?cntyn=0"; + // --------------- 로그인 세션 정보 초기화 --------------------- + request.getSession().removeAttribute("USERID"); + request.getSession().removeAttribute("USERNAME"); + request.getSession().removeAttribute("COMPANYNAME"); + request.getSession().removeAttribute("MASTERCODE"); + request.getSession().removeAttribute("CLS"); + request.getSession().removeAttribute("GOVECODE"); + request.getSession().removeAttribute("USERIP"); // IP 추가 + request.getSession().removeAttribute("USERAGENT"); // 접속 브라우져 정보 + request.getSession().removeAttribute("PARTNNAME"); + request.getSession().removeAttribute("PHONE"); + request.getSession().removeAttribute("EMAIL"); + // --------------- 로그인 세션 정보 초기화 END ---------------- } else { - if (location.equals("left")) - url = "left.do"; - else if (location.equals("main")) - url = "main.do"; - else if (location.equals("left_sitemap")) - url = "home/main_sitemap.jsp"; - else - url = "index.do?cntyn=0"; + + // 로그인 성공시 실패회수 초기화 + map.put("loginCount", 0); + map.put("userid", userid); + loginService.pswdResetWebMemberIn(map); + + //최초 1회 지자체 사용자 인증 여부 + liq_yn = selectWebMemberIn.get("liq_yn").toString(); + map.put("liq_yn", liq_yn); + + // 2018-08-27 중복 로그인 방지. + // 2018-11-29. admin_user계정은 중복방지에서 제거 + // admin_user가 아닐 경우에만 세션 중복 방지 적용. + if (!adminYn && loginFlag) { + session.setAttribute("userId", id); + + String sessionId = session.getId(); + mv.addObject("sessionId", sessionId); + mv.addObject("name", session.getAttribute("userId")); + + dupLoginCheck(userid); + users.put(userid, session); + + // GeoInfoSessionMgrListener listener = new GeoInfoSessionMgrListener(); + // request.getSession().setAttribute(userid , listener); + } + + // 분기별 1회 비밀번호 공지 안내 + String strpswd_month = (String)selectWebMemberIn.get("PSWD_LIMIT"); + System.out.println(" 비밀번호 변경일자 - " + strpswd_month); + if (strpswd_month != null && ! "".equals(strpswd_month) ) { + int intpswd_month = Integer.parseInt(strpswd_month); + // 3개월마다 1번씩 비밀번호 변경 안내를 띄운다. + if ( intpswd_month >= 3 ) { + request.getSession().setAttribute("pswd_month", "Y"); + } + } + + if (cls.equals("1")) { + if (location.equals("left")) + url = "left.do"; + else if (location.equals("main")) + url = "main.do"; + else if (location.equals("left_sitemap")) + url = "home/main_sitemap.jsp"; + else + url = "index.do?cntyn=0"; + } else if (cls.equals("2")) { // 발주기관일경우 + if (location.equals("left")) + url = "left.do"; + else + url = "drilling/index.do"; + } else if (cls.equals("9")) { // 관리자일경우 + if (location.equals("left")) + url = "left.do"; + else + url = "index.do?cntyn"; + } else { + if (location.equals("left")) + url = "left.do"; + else if (location.equals("main")) + url = "main.do"; + else if (location.equals("left_sitemap")) + url = "home/main_sitemap.jsp"; + else + url = "index.do?cntyn=0"; + } } } } diff --git a/src/main/java/geoinfo/regi/basicInfo/BasicController.java b/src/main/java/geoinfo/regi/basicInfo/BasicController.java index f8f1e2d1..63a6713b 100644 --- a/src/main/java/geoinfo/regi/basicInfo/BasicController.java +++ b/src/main/java/geoinfo/regi/basicInfo/BasicController.java @@ -51,6 +51,7 @@ import geoinfo.regi.common.service.CommonService; import geoinfo.regi.selectClassInfo.service.SelectClassService; import geoinfo.regi.status.RegiController; import geoinfo.util.MyUtil; +import geoinfo.util.StringUtil; import ictway.comm.util.strUtil; import ictway.comm.web.WebUtil; @@ -870,17 +871,17 @@ public class BasicController { params.put("depthTo", wUtil.isNullNode(nDEPTH_TO)); params.put("rockType", wUtil.isNullNode(nROCK_TYPE)); params.put("rqd", wUtil.isNullNode(nRQD)); - params.put("rqdDesc", wUtil.isNullNode(nRQD_DESC)); //비고 1 + params.put("rqdDesc", StringUtil.removeTabStr(wUtil.isNullNode(nRQD_DESC)));// 비고 1 params.put("jn", wUtil.isNullNode(nJN)); - params.put("jnDesc", wUtil.isNullNode(nJN_DESC)); //비고 2 + params.put("jnDesc", StringUtil.removeTabStr(wUtil.isNullNode(nJN_DESC))); // 비고2 params.put("jr", wUtil.isNullNode(nJR)); - params.put("jrDesc", wUtil.isNullNode(nJR_DESC)); //비고 3 + params.put("jrDesc", StringUtil.removeTabStr(wUtil.isNullNode(nJR_DESC))); // 비고 3 params.put("ja", wUtil.isNullNode(nJA)); - params.put("jaDesc", wUtil.isNullNode(nJA_DESC)); //비고 4 + params.put("jaDesc", StringUtil.removeTabStr(wUtil.isNullNode(nJA_DESC))); // 비고 4 params.put("jw", wUtil.isNullNode(nJW)); - params.put("jwDesc", wUtil.isNullNode(nJW_DESC)); //비고 5 + params.put("jwDesc", StringUtil.removeTabStr(wUtil.isNullNode(nJW_DESC))); // 비고 5 params.put("srf", wUtil.isNullNode(nSRF)); - params.put("srfDesc", wUtil.isNullNode(nSRF_DESC)); //비고 6 + params.put("srfDesc", StringUtil.removeTabStr(wUtil.isNullNode(nSRF_DESC)));// 비고 6 params.put("userId", request.getSession().getAttribute("USERID")); basicService.insertTempQ(params); @@ -2153,9 +2154,9 @@ public class BasicController { params.put("fieldperCasingDia", wUtil.isNullNode(nFIELDPER_CASING_DIA)); params.put("fieldperCasingHeight", wUtil.isNullNode(nFIELDPER_CASING_HEIGHT)); params.put("fieldperAvgPermeability", wUtil.isNullNode(nFIELDPER_AVG_PERMEABILITY)); - params.put("fieldperInspectedBy", wUtil.isNullNode(nFIELDPER_INSPECTED_BY)); - params.put("fieldperCheckedBy", wUtil.isNullNode(nFIELDPER_CHECKED_BY)); - params.put("fieldperRemark", wUtil.isNullNode(nFIELDPER_REMARK)); + params.put("fieldperInspectedBy", StringUtil.removeTabStr(wUtil.isNullNode(nFIELDPER_INSPECTED_BY))); + params.put("fieldperCheckedBy", StringUtil.removeTabStr(wUtil.isNullNode(nFIELDPER_CHECKED_BY))); + params.put("fieldperRemark", StringUtil.removeTabStr(wUtil.isNullNode(nFIELDPER_REMARK))); // ----------------------file처리--------------------- // 현장수압 graph diff --git a/src/main/java/geoinfo/util/StringUtil.java b/src/main/java/geoinfo/util/StringUtil.java index 3db46581..03c93be4 100644 --- a/src/main/java/geoinfo/util/StringUtil.java +++ b/src/main/java/geoinfo/util/StringUtil.java @@ -1530,4 +1530,19 @@ public class StringUtil { } + /** + *
+	 * \t 제거하기
+	 * 
+ * + * @return String + * @changed 2025.11.03 YJI + */ + public static String removeTabStr(String str) { + String rtnStr = ""; + if (str != null && !"".equals(str)) { + rtnStr = str.replace("\t", ""); + } + return rtnStr; + } }