Merge branch 'JIWOO' into advc
This commit is contained in:
commit
69f72a339c
@ -117,7 +117,8 @@ public class APILoginContoller {
|
|||||||
resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority());
|
resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority());
|
||||||
}
|
}
|
||||||
resultVO.setUrl(returnUrl);
|
resultVO.setUrl(returnUrl);
|
||||||
request.getSession().setAttribute("APILoginVO", resultVO); // LoginVO세션 생성
|
request.getSession().setAttribute("LoginVO", resultVO); // LoginVO세션 생성
|
||||||
|
request.getSession().setAttribute("SSOLoginVO", resultVO); // SSOLogin세션 사용 유지
|
||||||
UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter();
|
UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter();
|
||||||
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
|
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
|
||||||
Map<String, UsernamePasswordAuthenticationFilter> beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class);
|
Map<String, UsernamePasswordAuthenticationFilter> beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class);
|
||||||
@ -228,21 +229,22 @@ public class APILoginContoller {
|
|||||||
Map<String, String> response = new HashMap<>();
|
Map<String, String> response = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
loginVO = loginService.selectOffeduMberChk(loginVO);
|
loginVO = loginService.selectOffeduMberChk(loginVO);
|
||||||
System.out.println("@@@찾교api - ID :"+loginVO.getId()+"key:"+loginVO.getKey());
|
|
||||||
if(loginVO != null) {
|
if(loginVO != null) {
|
||||||
response.put("result_code", "1");
|
response.put("result_code", "1");
|
||||||
response.put("message", "");
|
response.put("message", "");
|
||||||
|
System.out.println("@@@찾교api - ID :"+loginVO.getId()+"key:"+loginVO.getKey());
|
||||||
|
loginService.updateMberSeqKeyNull(loginVO);
|
||||||
}else {
|
}else {
|
||||||
response.put("result_code", "-1");
|
response.put("result_code", "-1");
|
||||||
response.put("message", "인증오류입니다.");
|
response.put("message", "인증오류입니다.");
|
||||||
}
|
}
|
||||||
//찾교 mber_seq key 값 파기
|
//찾교 mber_seq key 값 파기
|
||||||
System.out.println("@@@@@찾교 key 파기@@@@@@@@@@");
|
System.out.println("@@@@@찾교 key 파기@@@@@@@@@@");
|
||||||
loginService.updateMberSeqKeyNull(loginVO);
|
|
||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
}catch (Exception e) {
|
}catch (Exception e) {
|
||||||
response.put("result_code", "error");
|
response.put("result_code", "error");
|
||||||
response.put("message", "Internal Server Error: " + e.getMessage());
|
//response.put("message", "Internal Server Error: " + e.getMessage());
|
||||||
|
response.put("message", "오류발생");
|
||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response);
|
// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response);
|
||||||
}
|
}
|
||||||
@ -289,4 +291,88 @@ public class APILoginContoller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
로그인 세션 테스트용
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/web/chkloginKeyForOffeduTest.do")
|
||||||
|
public String chkloginKeyForOffeduTest(RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response,HttpSession session) throws Exception {
|
||||||
|
String userId = request.getParameter("user_id");
|
||||||
|
String key = request.getParameter("key");
|
||||||
|
//String returnUrl = paramRequest.get("returnUrl"); //e-배움터 문의결과 returnUrl 컨트롤은 불가능하다고 함
|
||||||
|
String returnUrl = "";
|
||||||
|
|
||||||
|
//테스트를 위한 값 선언
|
||||||
|
/*userId = "std02@forwiz.com";
|
||||||
|
key = "std02@forwiz.comxpnBtqsev3nh9mryXRdL9QRSR72XuNc08ese5iXHb0Waq1dMnSdkHHqKCgoSFeyH.amV1c19kb21haW4vTE1T";
|
||||||
|
returnUrl = "/web/main/mainPage.do";*/
|
||||||
|
|
||||||
|
if(StringUtils.isEmpty(userId) || StringUtils.isEmpty(key)) {
|
||||||
|
return "redirect:/web/main/mainPage.do";
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, String> result = loginKeytoEEdu(userId, key);
|
||||||
|
String resultCode = "1";
|
||||||
|
String message = "성공";
|
||||||
|
userId = "test@naver.com";
|
||||||
|
|
||||||
|
if(resultCode.equals("1")) { //API 성공
|
||||||
|
System.out.println("@@@@@@@@@@API성공@@@@@@@@");
|
||||||
|
returnUrl = "/web/main/mainPage.do";//임시 url
|
||||||
|
//회원테이블에 없던 회원이면 insert, 있던 회원이면 update
|
||||||
|
UserManageVO userManageVO = new UserManageVO();
|
||||||
|
userManageVO.setMberId(userId);
|
||||||
|
UserManageVO userManageChk = userManageService.selectOffeduUser(userManageVO);
|
||||||
|
if(userManageChk == null) {
|
||||||
|
userManageVO.setAuthorCode("ROLE_USER_MEMBER");
|
||||||
|
userManageService.insertOffeduUser(userManageVO);
|
||||||
|
System.out.println("@@@@@@@@@@찾교에 계정생성@@@@@@@@@@");
|
||||||
|
}
|
||||||
|
//로그인 처리 시작
|
||||||
|
LoginVO loginVO = new LoginVO();
|
||||||
|
loginVO.setId(userId);
|
||||||
|
loginVO.setPassword("1"); //사용자 로그인만 처리함으로 password 1고정
|
||||||
|
loginVO.setUserSe("GNR");
|
||||||
|
loginVO.setIp(EgovClntInfo.getClntIP(request));
|
||||||
|
|
||||||
|
LoginVO resultVO = loginService.APIActionLogin(loginVO);
|
||||||
|
if (loginService.getUserAuth(resultVO) != null) {
|
||||||
|
resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority());
|
||||||
|
}
|
||||||
|
resultVO.setUrl(returnUrl);
|
||||||
|
request.getSession().setAttribute("LoginVO", resultVO); // LoginVO세션 생성
|
||||||
|
UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter();
|
||||||
|
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
|
||||||
|
Map<String, UsernamePasswordAuthenticationFilter> beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class);
|
||||||
|
if (beans.size() > 0) {
|
||||||
|
springSecurity = (UsernamePasswordAuthenticationFilter) beans.values().toArray()[0];
|
||||||
|
springSecurity.setUsernameParameter("egov_security_username");
|
||||||
|
springSecurity.setPasswordParameter("egov_security_password");
|
||||||
|
springSecurity.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher(request.getServletContext().getContextPath() + "/egov_security_login", "POST"));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new IllegalStateException("No AuthenticationProcessingFilter");
|
||||||
|
}
|
||||||
|
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null);
|
||||||
|
//doFilter 처리 시 redirect가 불가능하여, context-security.xml에서 login url로 이동 후 redirect 처리
|
||||||
|
System.out.println("@@@@@@@@@@@@@@로그인 처리 완료@@@@@@@@@@@");
|
||||||
|
return "blank";
|
||||||
|
}else if(resultCode.equals("-101")) { //세션 값 만료
|
||||||
|
redirectAttributes.addFlashAttribute("message", message);
|
||||||
|
returnUrl = "/web/main/mainPage.do";
|
||||||
|
return "redirect:" + returnUrl;
|
||||||
|
}else if(resultCode.equals("-102")) { //회원정보 확인불가
|
||||||
|
redirectAttributes.addFlashAttribute("message", message);
|
||||||
|
returnUrl = "/web/main/mainPage.do";
|
||||||
|
return "redirect:" + returnUrl;
|
||||||
|
}else if(resultCode.equals("-1")) { //API 통신 오류
|
||||||
|
redirectAttributes.addFlashAttribute("message", message);
|
||||||
|
returnUrl = "/web/main/mainPage.do";
|
||||||
|
return "redirect:" + returnUrl;
|
||||||
|
}else { //알 수 없는 오류
|
||||||
|
redirectAttributes.addFlashAttribute("message", message);
|
||||||
|
returnUrl = "/web/main/mainPage.do";
|
||||||
|
return "redirect:" + returnUrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1588,10 +1588,12 @@ public class EgovLoginController {
|
|||||||
|
|
||||||
// e-배움터 연동 로그인 시 - LoginVO 세션의 return url로 이동
|
// e-배움터 연동 로그인 시 - LoginVO 세션의 return url로 이동
|
||||||
try {
|
try {
|
||||||
LoginVO eEduLoginVO = (LoginVO) session.getAttribute("APILoginVO");
|
LoginVO eEduLoginVO = (LoginVO) session.getAttribute("LoginVO");
|
||||||
if(eEduLoginVO.getUrl() != null) {
|
if(eEduLoginVO != null) {
|
||||||
return "redirect:" + eEduLoginVO.getUrl();
|
if(eEduLoginVO.getUrl() != null) {
|
||||||
}
|
return "redirect:" + eEduLoginVO.getUrl();
|
||||||
|
}
|
||||||
|
}
|
||||||
}catch(Exception ex) {
|
}catch(Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,14 +53,14 @@
|
|||||||
|
|
||||||
<!-- 찾교시스템 SSO Valid 필터 -->
|
<!-- 찾교시스템 SSO Valid 필터 -->
|
||||||
<!-- 필터 순서에 유의 -->
|
<!-- 필터 순서에 유의 -->
|
||||||
<filter>
|
<!-- <filter>
|
||||||
<filter-name>kccadrLoginValidFilter</filter-name>
|
<filter-name>kccadrLoginValidFilter</filter-name>
|
||||||
<filter-class>kcc.let.uat.uia.web.SSOValid</filter-class>
|
<filter-class>kcc.let.uat.uia.web.SSOValid</filter-class>
|
||||||
</filter>
|
</filter>
|
||||||
<filter-mapping>
|
<filter-mapping>
|
||||||
<filter-name>kccadrLoginValidFilter</filter-name>
|
<filter-name>kccadrLoginValidFilter</filter-name>
|
||||||
<url-pattern>/web/*</url-pattern>
|
<url-pattern>/web/*</url-pattern>
|
||||||
</filter-mapping>
|
</filter-mapping> -->
|
||||||
|
|
||||||
|
|
||||||
<!-- site mesh -->
|
<!-- site mesh -->
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user