(오류수정)국토교통부 외 계정 잠금 처리

main
유지인 2025-11-03 14:46:31 +09:00
parent 1cb5599a54
commit c00c0df837
1 changed files with 93 additions and 86 deletions

View File

@ -1045,93 +1045,100 @@ public class LoginController {
}
else {
// 국토부 소속+산하기관 계정만 로그인 허용(국토부소속+산하기관:GL_CODE = 01)
HashMap<String, Object> userGMap = drillingInputService.getOrganizationUserGlGmGsGfCodes(userid);
String glCode = MyUtil.getStringFromObject( userGMap.get("v_gl") );
if (!"01".equals(glCode)) {
msg = "<script>alert('해당 계정은 현재 잠김 상태입니다');</script>";
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 ----------------
if ("2".equals(cls)) {
// 국토부 소속+산하기관 계정만 로그인 허용(국토부소속+산하기관:GL_CODE = 01)
HashMap<String, Object> userGMap = drillingInputService.getOrganizationUserGlGmGsGfCodes(userid);
String glCode = MyUtil.getStringFromObject( userGMap.get("v_gl") );
if (!"01".equals(glCode) && !"09".equals(cls)) {
msg = "<script>alert('해당 계정은 현재 잠김 상태입니다');</script>";
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");
mv.addObject("msg", msg);
mv.addObject("url", url);
myTest(request, response, userid);
return mv;
// --------------- 로그인 세션 정보 초기화 END ----------------
}
}
// 로그인 성공시 실패회수 초기화
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 {
// 로그인 성공시 실패회수 초기화
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";
}
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";
}
}
}