diff --git a/.classpath b/.classpath index 99a4add8..da9dfd75 100644 --- a/.classpath +++ b/.classpath @@ -34,6 +34,5 @@ - diff --git a/pom.xml b/pom.xml index a54739b4..5206bb4a 100644 --- a/pom.xml +++ b/pom.xml @@ -141,6 +141,18 @@ commons-httpclient 3.1 + + + org.springframework + spring-core + ${spring.maven.artifact.version} + + + + org.springframework + spring-expression + ${spring.maven.artifact.version} + @@ -155,8 +167,17 @@ --> - + + + org.springframework.webflow + spring-faces + 2.4.1.RELEASE + org.springframework.security spring-security-web diff --git a/src/main/java/nlib/cmm/qrcode/QRCodeUtil.java b/src/main/java/nlib/cmm/qrcode/QRCodeUtil.java index f0fbbac5..e2f3d6db 100644 --- a/src/main/java/nlib/cmm/qrcode/QRCodeUtil.java +++ b/src/main/java/nlib/cmm/qrcode/QRCodeUtil.java @@ -149,7 +149,6 @@ public class QRCodeUtil { // (2) 앞의 (1)의 문자열을 암호화 처리 String cryptedBarcodeText = EgovFileScrty.encodeBinary(barcodeText.getBytes()); log.debug("generateMemberQRCodeImage : cryptedBarcodeText=" + cryptedBarcodeText); - loginVO.setOnnaraUserid(cryptedBarcodeText); // TODO 임시저장처리 DDDDDDDDDDDDDDDDDDDDDDD // (3) 앞의 (2) 암호화 문자열로 QRCode 생성하여 BufferedImage형식으로 리턴 return generateQRCodeImageByZxing(cryptedBarcodeText); diff --git a/src/main/java/nlib/security/SpringSecurityConfig.java b/src/main/java/nlib/security/SpringSecurityConfig.java index dbc0d02a..eab90855 100644 --- a/src/main/java/nlib/security/SpringSecurityConfig.java +++ b/src/main/java/nlib/security/SpringSecurityConfig.java @@ -45,6 +45,8 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web) throws Exception { + + // 권한/인증과 무관한 오픈된 정적 리소트 web.ignoring() .antMatchers("/resources/**") .antMatchers("/css/**") @@ -52,13 +54,6 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/js/**") .antMatchers("/temp/**") .antMatchers("/favicon/**") - .antMatchers("/*/*Ajax.do") - .antMatchers("/fileupload/**") - .antMatchers("/board/**") - .antMatchers("/inform/**") - .antMatchers("/alert/**") - .antMatchers("/code/**") - .antMatchers("/**") ; } @@ -82,6 +77,12 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/rent/*.do").permitAll() .antMatchers("/collection/*.do").permitAll() .antMatchers("/sample/password/getSampleEncoder.do").permitAll() + .antMatchers("/*/*Ajax.do").permitAll() + .antMatchers("/fileupload/**").permitAll() + .antMatchers("/board/**").permitAll() + .antMatchers("/inform/**").permitAll() + .antMatchers("/alert/**").permitAll() + .antMatchers("/code/**").permitAll() .anyRequest().authenticated() .and().formLogin() .loginPage("/login/loginForm.do") diff --git a/src/main/java/nlib/user/service/NlibLoginVO.java b/src/main/java/nlib/user/service/NlibLoginVO.java index 6b2f065c..6dfa17d7 100644 --- a/src/main/java/nlib/user/service/NlibLoginVO.java +++ b/src/main/java/nlib/user/service/NlibLoginVO.java @@ -36,35 +36,19 @@ public class NlibLoginVO implements Serializable { private String loginUserId; /* 로그인사용자ID (이메일주소) */ private String deptSeq; /* 조직코드 */ private String deptNm; /* 조직명 */ - private String userDiv; /* 사용자구분 */ private String userNm; /* 사용자명 */ private String userPwd; /* 비밀번호 */ - private String posNm; /* 직위 */ - private String rank; /* 직급 */ - private String workFlag; /* 근무여부 */ private String telNo; /* 전화번호 */ private String zipcode; /* 우편번호 (변경예정) */ private String addr1; /* 주소1 (변경예정) */ private String addr2; /* 주소2 (변경예정) */ - private String strtMenuSeq; /* 시작페이지 */ - private String idCardChkYn; /* 신분증 확인여부 */ - private String useYn; /* 사용여부 */ - private String ssoFlag; /* 시스템구분(1:기록관리,2:기관배치) */ - private String loginErrorCnt; /* 로그인오류건수 */ - private String onnaraUserid; /* 온나라사용자아이디(웹서비스용) */ - private String pkiNameCheck; /* 인증서 등록시 이름 체크 구분 */ - private String ssoKey; /* SSO 인증KEY (SSO를 위한 사용자의 KEY값) */ + private String status; /* 상태 : S정상, D탈퇴, P휴면 */ private String regId; /* 등록자 */ private String regDd; /* 등록일자 */ private String modId; /* 수정자 */ private String modDd; /* 수정일자 */ private String email; /* 이메일 */ private String mobileNo; /* 모바일 */ - private String websiteAddr; /* 웹사이트 */ - private String facebookId; /* 페이스북아이디 */ - private String twitterId; /* 트위터아이디 */ - private String googleId; /* 구글플러스아이디 */ - private String boardRowCnt; /* 글목록수 */ private String birthdate; /* 생년월일 */ private String gender; /* 성별(M:남자,F:여자) */ @@ -98,9 +82,11 @@ public class NlibLoginVO implements Serializable { return this.authKey; } + //---------------------------------------------------------------- // SETTER.GETTER //---------------------------------------------------------------- + public String getUserId() { return userId; } @@ -125,18 +111,22 @@ public class NlibLoginVO implements Serializable { this.deptSeq = deptSeq; } - public String getUserDiv() { - return userDiv; + public String getDeptNm() { + return deptNm; } - public void setUserDiv(String userDiv) { - this.userDiv = userDiv; + public void setDeptNm(String deptNm) { + this.deptNm = deptNm; } public String getUserNm() { return userNm; } + public String getName() { + return userNm; + } + public void setUserNm(String userNm) { this.userNm = userNm; } @@ -149,30 +139,6 @@ public class NlibLoginVO implements Serializable { this.userPwd = userPwd; } - public String getPosNm() { - return posNm; - } - - public void setPosNm(String posNm) { - this.posNm = posNm; - } - - public String getRank() { - return rank; - } - - public void setRank(String rank) { - this.rank = rank; - } - - public String getWorkFlag() { - return workFlag; - } - - public void setWorkFlag(String workFlag) { - this.workFlag = workFlag; - } - public String getTelNo() { return telNo; } @@ -205,68 +171,12 @@ public class NlibLoginVO implements Serializable { this.addr2 = addr2; } - public String getStrtMenuSeq() { - return strtMenuSeq; + public String getStatus() { + return status; } - public void setStrtMenuSeq(String strtMenuSeq) { - this.strtMenuSeq = strtMenuSeq; - } - - public String getIdCardChkYn() { - return idCardChkYn; - } - - public void setIdCardChkYn(String idCardChkYn) { - this.idCardChkYn = idCardChkYn; - } - - public String getUseYn() { - return useYn; - } - - public void setUseYn(String useYn) { - this.useYn = useYn; - } - - public String getSsoFlag() { - return ssoFlag; - } - - public void setSsoFlag(String ssoFlag) { - this.ssoFlag = ssoFlag; - } - - public String getLoginErrorCnt() { - return loginErrorCnt; - } - - public void setLoginErrorCnt(String loginErrorCnt) { - this.loginErrorCnt = loginErrorCnt; - } - - public String getOnnaraUserid() { - return onnaraUserid; - } - - public void setOnnaraUserid(String onnaraUserid) { - this.onnaraUserid = onnaraUserid; - } - - public String getPkiNameCheck() { - return pkiNameCheck; - } - - public void setPkiNameCheck(String pkiNameCheck) { - this.pkiNameCheck = pkiNameCheck; - } - - public String getSsoKey() { - return ssoKey; - } - - public void setSsoKey(String ssoKey) { - this.ssoKey = ssoKey; + public void setStatus(String status) { + this.status = status; } public String getRegId() { @@ -317,55 +227,6 @@ public class NlibLoginVO implements Serializable { this.mobileNo = mobileNo; } - public String getWebsiteAddr() { - return websiteAddr; - } - - public void setWebsiteAddr(String websiteAddr) { - this.websiteAddr = websiteAddr; - } - - public String getFacebookId() { - return facebookId; - } - - public void setFacebookId(String facebookId) { - this.facebookId = facebookId; - } - - public String getTwitterId() { - return twitterId; - } - - public void setTwitterId(String twitterId) { - this.twitterId = twitterId; - } - - public String getGoogleId() { - return googleId; - } - - public void setGoogleId(String googleId) { - this.googleId = googleId; - } - - public String getBoardRowCnt() { - return boardRowCnt; - } - - public void setBoardRowCnt(String boardRowCnt) { - this.boardRowCnt = boardRowCnt; - } - - public String getAuthKey() { - - return authKey; - } - - public void setAuthKey(String authKey) { - this.authKey = authKey; - } - public String getBirthdate() { return birthdate; } @@ -382,20 +243,12 @@ public class NlibLoginVO implements Serializable { this.gender = gender; } - public String getDeptNm() { - return deptNm; + public String getAuthKey() { + return authKey; } - public void setDeptNm(String deptNm) { - this.deptNm = deptNm; - } - - public String getAccIp() { - return accIp; - } - - public void setAccIp(String accIp) { - this.accIp = accIp; + public void setAuthKey(String authKey) { + this.authKey = authKey; } public String getLoginSucsYn() { @@ -406,6 +259,14 @@ public class NlibLoginVO implements Serializable { this.loginSucsYn = loginSucsYn; } + public String getAccIp() { + return accIp; + } + + public void setAccIp(String accIp) { + this.accIp = accIp; + } + public String getAuthorityList() { return authorityList; } diff --git a/src/main/java/nlib/user/service/impl/LoginDAO.java b/src/main/java/nlib/user/service/impl/LoginDAO.java index 86a1d1de..81cc39c1 100644 --- a/src/main/java/nlib/user/service/impl/LoginDAO.java +++ b/src/main/java/nlib/user/service/impl/LoginDAO.java @@ -24,7 +24,7 @@ public class LoginDAO extends EgovComAbstractDAO { } public void insertLoginLog(NlibLoginVO userVO) { - insert("BBSArticle.insertLoginLog", userVO); + insert("LoginDAO.insertLoginLog", userVO); } } \ No newline at end of file diff --git a/src/main/java/nlib/user/service/impl/LoginServiceImpl.java b/src/main/java/nlib/user/service/impl/LoginServiceImpl.java index 5e6b70fe..aec851e7 100644 --- a/src/main/java/nlib/user/service/impl/LoginServiceImpl.java +++ b/src/main/java/nlib/user/service/impl/LoginServiceImpl.java @@ -110,12 +110,16 @@ public class LoginServiceImpl implements LoginService loginDAO.insertLoginLog(userVO); } catch (DisabledException e) { + e.printStackTrace(); return "/login/loginForm.do?error=locked"; } catch (LockedException e) { + e.printStackTrace(); return "/login/loginForm.do?error=disable"; } catch (BadCredentialsException e) { + e.printStackTrace(); return "/login/loginForm.do?error=invalid-password"; } catch (Exception e) { + e.printStackTrace(); return "/login/loginForm.do?error=other&message=" + e.toString(); } diff --git a/src/main/java/nlib/user/web/LoginController.java b/src/main/java/nlib/user/web/LoginController.java index 65bbfd99..a058421a 100644 --- a/src/main/java/nlib/user/web/LoginController.java +++ b/src/main/java/nlib/user/web/LoginController.java @@ -120,14 +120,17 @@ public class LoginController { * @return */ @RequestMapping("/login/loginForm.do") - public String loginForm(HttpServletRequest req, @RequestParam(required = false) String error, - @RequestParam(required = false) String logout, Model model, HttpSession session) { - if (error != null) { - model.addAttribute("error", String.format("ID와 비밀번호를 확인하여 주시기 바랍니다. %s", error)); - } - if (logout != null) { - model.addAttribute("logout", String.format("로그아웃하였습니다 %s", logout)); - } + public String loginForm(HttpServletRequest req, + @RequestParam(required = false) String error, + @RequestParam(required = false) String message, + @RequestParam(required = false) String logout, + Model model, + HttpSession session) { + + + model.addAttribute("error", error); + model.addAttribute("message", message); + model.addAttribute("logout", String.format("로그아웃하였습니다 %s", logout)); // SNS 연동 URL 생성 OAuthLogin naverLogin = new OAuthLogin(naverAuthVO); diff --git a/src/main/resources/egovframework/mapper/config/mapper-config.xml b/src/main/resources/egovframework/mapper/config/mapper-config.xml index 6a706d7f..03e9d61a 100644 --- a/src/main/resources/egovframework/mapper/config/mapper-config.xml +++ b/src/main/resources/egovframework/mapper/config/mapper-config.xml @@ -12,8 +12,9 @@ - - + + + \ 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 4489e05f..5b325e2a 100644 --- a/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml @@ -4,7 +4,7 @@ @@ -35,7 +35,7 @@ ,#{deptSeq} ,#{deptNm} ,#{accIp} - ,#{loginSucsYn} + ,'Y' ,NOW() ) 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 41dc45e3..81163423 100644 --- a/src/main/resources/egovframework/mapper/nlib/user/SecUserDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/user/SecUserDAO_SQL.xml @@ -3,7 +3,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - SELECT A.*, CASE WHEN A.USER_DIV = '1' THEN 'ROLE_USER' WHEN A.USER_DIV = '2' THEN 'ROLE_USER, ROLE_ADMIN' @@ -13,7 +13,7 @@ FROM TMP_SM_USER A /* 사용자정보 */ WHERE A.USE_YN = 'Y' AND A.LOGIN_USER_ID = #{loginUserId} - AND LIMIT 1 + LIMIT 1 \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/nlib/login/loginForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/login/loginForm.jsp index 5cfc396e..06169234 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/login/loginForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/login/loginForm.jsp @@ -49,6 +49,13 @@
+ +error : ${error } + 
+message : ${message } + 

+ diff --git a/src/main/webapp/WEB-INF/tiles/inc/header.jsp b/src/main/webapp/WEB-INF/tiles/inc/header.jsp index 62502593..34168e53 100644 --- a/src/main/webapp/WEB-INF/tiles/inc/header.jsp +++ b/src/main/webapp/WEB-INF/tiles/inc/header.jsp @@ -11,7 +11,6 @@
  • 개인정보처리방침
  • 이용약관
  • -
  • 로그인
  • 로그인
  • @@ -26,8 +25,8 @@
  • - - + + ${userName}님 (${userId})