Merge branch 'master_tolag3'
This commit is contained in:
parent
bb1ec4d742
commit
0734fe370f
@ -12,7 +12,12 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||||
|
|
||||||
import egovframework.rte.fdl.property.EgovPropertyService;
|
import egovframework.rte.fdl.property.EgovPropertyService;
|
||||||
|
import kcc.com.cmm.ComDefaultVO;
|
||||||
import kcc.com.cmm.util.RedirectUrlMaker;
|
import kcc.com.cmm.util.RedirectUrlMaker;
|
||||||
|
import kcc.let.sym.mnu.mpm.service.EgovMenuManageService;
|
||||||
|
import kcc.let.sym.mnu.mpm.service.MenuManageVO;
|
||||||
|
import kcc.let.sym.prm.service.EgovProgrmManageService;
|
||||||
|
import kcc.let.sym.prm.service.ProgrmManageVO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 공통유틸리티성 작업을 위한 Controller 클래스
|
* 공통유틸리티성 작업을 위한 Controller 클래스
|
||||||
@ -37,6 +42,14 @@ public class EgovComUtlController {
|
|||||||
/** EgovPropertyService */
|
/** EgovPropertyService */
|
||||||
@Resource(name = "propertiesService")
|
@Resource(name = "propertiesService")
|
||||||
protected EgovPropertyService propertiesService;
|
protected EgovPropertyService propertiesService;
|
||||||
|
|
||||||
|
/** EgovProgrmManageService */
|
||||||
|
@Resource(name = "progrmManageService")
|
||||||
|
private EgovProgrmManageService progrmManageService;
|
||||||
|
|
||||||
|
/** EgovMenuManageService */
|
||||||
|
@Resource(name = "meunManageService")
|
||||||
|
private EgovMenuManageService menuManageService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JSP 호출작업만 처리하는 공통 함수
|
* JSP 호출작업만 처리하는 공통 함수
|
||||||
@ -61,6 +74,52 @@ public class EgovComUtlController {
|
|||||||
}else if(null != request.getAttribute("baseMenuNo")){
|
}else if(null != request.getAttribute("baseMenuNo")){
|
||||||
session.setAttribute("baseMenuNo", (String)request.getAttribute("baseMenuNo"));
|
session.setAttribute("baseMenuNo", (String)request.getAttribute("baseMenuNo"));
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
ComDefaultVO searchVO = new ComDefaultVO();
|
||||||
|
String tempUrl = request.getRequestURI().replace(request.getContextPath(), "");
|
||||||
|
|
||||||
|
if(
|
||||||
|
tempUrl.contains("cndtnEduPrcsAplctPrdMngList.do")
|
||||||
|
|| tempUrl.contains("cndtnEduPrcsAplctCfnMngList.do")
|
||||||
|
) {
|
||||||
|
tempUrl = tempUrl.replace("cndtnEduPrcsAplctPrdMngList", "cndtnEduPrcsMngList");
|
||||||
|
tempUrl = tempUrl.replace("cndtnEduPrcsAplctCfnMngList", "cndtnEduPrcsMngList");
|
||||||
|
}
|
||||||
|
|
||||||
|
searchVO.setSearchKeyword(tempUrl);
|
||||||
|
ProgrmManageVO progrmManageVO = progrmManageService.selectProgrmUrl(searchVO);
|
||||||
|
|
||||||
|
if(progrmManageVO != null) {
|
||||||
|
|
||||||
|
MenuManageVO tempMenuManageVO = new MenuManageVO();
|
||||||
|
tempMenuManageVO.setSearchKeyword(progrmManageVO.getProgrmFileNm());
|
||||||
|
MenuManageVO resultVO = menuManageService.selectMenuManage(tempMenuManageVO) ;
|
||||||
|
|
||||||
|
session.setAttribute("baseMenuNo", String.valueOf(resultVO.getMenuNo()));
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
|
}
|
||||||
|
}
|
||||||
// 선택된 메뉴정보를 상단 이름을 세션으로 등록한다.
|
// 선택된 메뉴정보를 상단 이름을 세션으로 등록한다.
|
||||||
if (baseMenuNm != null && !baseMenuNm.equals("") && !baseMenuNm.equals("null")) {
|
if (baseMenuNm != null && !baseMenuNm.equals("") && !baseMenuNm.equals("null")) {
|
||||||
session.setAttribute("baseMenuNm", baseMenuNm);
|
session.setAttribute("baseMenuNm", baseMenuNm);
|
||||||
|
|||||||
@ -249,6 +249,14 @@ public class EgovMainController {
|
|||||||
, HttpSession session) throws Exception{
|
, HttpSession session) throws Exception{
|
||||||
|
|
||||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||||
|
|
||||||
|
if ("ROLE_ADR_JRSDC".equals(loginVO.getAuthority())) { //기소유예
|
||||||
|
return "redirect:/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do";
|
||||||
|
} else if ("ROLE_ADR_KIPO".equals(loginVO.getAuthority())) { //시정명령
|
||||||
|
return "redirect:/kccadr/oprtn/cmdTrgt/trgtList.do";
|
||||||
|
} else if ("ROLE_ADR_PREV".equals(loginVO.getAuthority())) { //예방교육
|
||||||
|
return "redirect:/kccadr/oprtn/prevent/cndtnEduPrcsMngList.do";
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* notify..?
|
* notify..?
|
||||||
@ -1167,12 +1175,15 @@ public class EgovMainController {
|
|||||||
if (today.before(startDate)) {
|
if (today.before(startDate)) {
|
||||||
// 접수전
|
// 접수전
|
||||||
t.setDdlnCd(VeConstants.DDLN_CD_APP_BEFORE);
|
t.setDdlnCd(VeConstants.DDLN_CD_APP_BEFORE);
|
||||||
|
t.setDdlnCdNm("접수전");
|
||||||
} else if (!today.before(startDate) && !today.after(endDate)) {
|
} else if (!today.before(startDate) && !today.after(endDate)) {
|
||||||
// 접수중
|
// 접수중
|
||||||
t.setDdlnCd(VeConstants.DDLN_CD_APP_ING);
|
t.setDdlnCd(VeConstants.DDLN_CD_APP_ING);
|
||||||
|
t.setDdlnCdNm("접수중");
|
||||||
} else if (today.after(endDate)) {
|
} else if (today.after(endDate)) {
|
||||||
// 접수종료
|
// 접수종료
|
||||||
t.setDdlnCd(VeConstants.DDLN_CD_APP_END);
|
t.setDdlnCd(VeConstants.DDLN_CD_APP_END);
|
||||||
|
t.setDdlnCdNm("접수종료");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -1211,12 +1222,15 @@ public class EgovMainController {
|
|||||||
if (today.before(startDate)) {
|
if (today.before(startDate)) {
|
||||||
// 접수전
|
// 접수전
|
||||||
t.setDdlnCd(VeConstants.DDLN_CD_APP_BEFORE);
|
t.setDdlnCd(VeConstants.DDLN_CD_APP_BEFORE);
|
||||||
|
t.setDdlnCdNm("접수전");
|
||||||
} else if (!today.before(startDate) && !today.after(endDate)) {
|
} else if (!today.before(startDate) && !today.after(endDate)) {
|
||||||
// 접수중
|
// 접수중
|
||||||
t.setDdlnCd(VeConstants.DDLN_CD_APP_ING);
|
t.setDdlnCd(VeConstants.DDLN_CD_APP_ING);
|
||||||
|
t.setDdlnCdNm("접수중");
|
||||||
} else if (today.after(endDate)) {
|
} else if (today.after(endDate)) {
|
||||||
// 접수종료
|
// 접수종료
|
||||||
t.setDdlnCd(VeConstants.DDLN_CD_APP_END);
|
t.setDdlnCd(VeConstants.DDLN_CD_APP_END);
|
||||||
|
t.setDdlnCdNm("접수종료");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@ -1855,18 +1855,16 @@ public class EgovLoginController {
|
|||||||
|
|
||||||
if ("ROLE_ADMIN".equals(loginService.getUserAuth(user).getAuthority())) { // 수퍼관리자 경우
|
if ("ROLE_ADMIN".equals(loginService.getUserAuth(user).getAuthority())) { // 수퍼관리자 경우
|
||||||
return "redirect:/cmm/main/mainPage.do";
|
return "redirect:/cmm/main/mainPage.do";
|
||||||
// return "redirect:/kccadr/oprtn/tngrVisitEdu/areaLctrMngList.do";
|
|
||||||
} else if ("ROLE_USER_MANAGER".equals(user.getAuthority())) {
|
} else if ("ROLE_USER_MANAGER".equals(user.getAuthority())) {
|
||||||
return "redirect:/web/main/mainPage.do";
|
return "redirect:/web/main/mainPage.do";
|
||||||
} else if ("ROLE_VISIT".equals(user.getAuthority())) {
|
} else if ("ROLE_VISIT".equals(user.getAuthority())) {
|
||||||
return "redirect:/cmm/main/mainPage.do";
|
return "redirect:/cmm/main/mainPage.do";
|
||||||
} else if ("ROLE_ADR_JRSDC".equals(user.getAuthority())) {
|
} else if ("ROLE_ADR_JRSDC".equals(user.getAuthority())) { //기소유예
|
||||||
return "redirect:/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do";
|
return "redirect:/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do";
|
||||||
//return "redirect:/cmm/main/mainPage.do";
|
|
||||||
//return "redirect:/cop/bbs/selectBoardList.do?bbsId=BBSMSTR_000000000040";
|
|
||||||
} else if ("ROLE_ADR_KIPO".equals(user.getAuthority())) { //시정명령
|
} else if ("ROLE_ADR_KIPO".equals(user.getAuthority())) { //시정명령
|
||||||
return "redirect:/kccadr/oprtn/cmdTrgt/trgtList.do";
|
return "redirect:/kccadr/oprtn/cmdTrgt/trgtList.do";
|
||||||
|
} else if ("ROLE_ADR_PREV".equals(user.getAuthority())) { //예방교육
|
||||||
|
return "redirect:/kccadr/oprtn/prevent/cndtnEduPrcsMngList.do";
|
||||||
} else if ("ROLE_USER_MEMBER".equals(user.getAuthority())) {
|
} else if ("ROLE_USER_MEMBER".equals(user.getAuthority())) {
|
||||||
System.out.println("비정상적인 사용자 redirect 임");
|
System.out.println("비정상적인 사용자 redirect 임");
|
||||||
return "redirect:/web/main/mainPage.do";
|
return "redirect:/web/main/mainPage.do";
|
||||||
|
|||||||
@ -1,216 +0,0 @@
|
|||||||
package kcc.let.uat.uia.web;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
import javax.servlet.Filter;
|
|
||||||
import javax.servlet.FilterChain;
|
|
||||||
import javax.servlet.FilterConfig;
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.ServletRequest;
|
|
||||||
import javax.servlet.ServletResponse;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import javax.servlet.http.HttpSession;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.security.core.Authentication;
|
|
||||||
import org.springframework.security.core.context.SecurityContextHolder;
|
|
||||||
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.bandi.oauth.BandiSSOAgent;
|
|
||||||
|
|
||||||
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
|
||||||
import kcc.com.cmm.LoginVO;
|
|
||||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*public class SSOValid {
|
|
||||||
|
|
||||||
// agent 관련 설정
|
|
||||||
private static String ssoUri = "https://devsso.copyright.or.kr/oauth2/token.do"; // 개발서버 URL
|
|
||||||
private static String clientId = "해당 시스템의 클라이언트 아이디";
|
|
||||||
private static String clientId = "30354835c3684ff79e7fb1bfd3a768f6";
|
|
||||||
private static String clientSecret = "해당 시스템의 클라이언트 시크릿";
|
|
||||||
private static String clientSecret = "1ueil5ee05wr0t1gjy1ppt212";
|
|
||||||
private static String scope = "http://sso.copyright.or.kr"; // 고정
|
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
|
||||||
// SSO 로그인 연계 "BandiSSOAgent 생성" 참조
|
|
||||||
BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);
|
|
||||||
|
|
||||||
// 사용자 접속 ip
|
|
||||||
String client_ip = "127.0.0.1";
|
|
||||||
|
|
||||||
// 세션에서 취득한 제어 토큰
|
|
||||||
String access_token = "95i90zzd57dqvefxx37732fjifkwm00k7piajty0iwq7a....";
|
|
||||||
//==================================
|
|
||||||
// SSO 유효성 검증 (Intercepter에서 매번 실행)
|
|
||||||
//==================================
|
|
||||||
// SSO 로그인 연계 "tokenValid 함수 요청" 및 "tokenValid 함수 결과" 참조
|
|
||||||
sso 연동 tokenValid 예제
|
|
||||||
|
|
||||||
System.out.println("------------------------인터셉터 test입니다---------------------------");
|
|
||||||
|
|
||||||
HashMap<String, String> tokenValid = agent.tokenValid(access_token, client_ip);
|
|
||||||
찾교 intercepter에 포함될 내용
|
|
||||||
// ssoLoginVO = (SsoLoginVO)session.getAttribute("SsoLoginVO");
|
|
||||||
// HashMap<String, String> tokenValid = agent.tokenValid(ssoLoginVO.getAccess_token, client_ip);
|
|
||||||
|
|
||||||
if(tokenValid.get("error").equals("0000") == false) {
|
|
||||||
// 토큰이 유효하지 않는 경우
|
|
||||||
// 세션 로그아웃 처리
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//==================================
|
|
||||||
// SSO 로그 아웃
|
|
||||||
//==================================
|
|
||||||
// SSO 로그인 연계 "logout 함수요청" 참조
|
|
||||||
agent.logout(access_token, client_ip);
|
|
||||||
// 세션 로그아웃
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class SSOValid implements Filter {
|
|
||||||
|
|
||||||
//SSO agent 관련 설정
|
|
||||||
|
|
||||||
private static String ssoUri;
|
|
||||||
|
|
||||||
private static String clientId;
|
|
||||||
|
|
||||||
private static String clientSecret;
|
|
||||||
|
|
||||||
private static String scope;
|
|
||||||
|
|
||||||
@Value("#{globalSettings['Globals.sso.ssoUri']}")
|
|
||||||
public void setSsoUri(String ssoUri) {
|
|
||||||
SSOValid.ssoUri = ssoUri;
|
|
||||||
}
|
|
||||||
@Value("#{globalSettings['Globals.sso.clientId']}")
|
|
||||||
public void setClientId(String clientId) {
|
|
||||||
SSOValid.clientId = clientId;
|
|
||||||
}
|
|
||||||
@Value("#{globalSettings['Globals.sso.clientSecret']}")
|
|
||||||
public void setClientSecret(String clientSecret) {
|
|
||||||
SSOValid.clientSecret = clientSecret;
|
|
||||||
}
|
|
||||||
@Value("#{globalSettings['Globals.sso.scope']}")
|
|
||||||
public void setScope(String scope) {
|
|
||||||
SSOValid.scope = scope;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*//실서버 적용시 변경
|
|
||||||
// agent 관련 설정
|
|
||||||
private static String ssoUri = "https://devsso.copyright.or.kr/oauth2/token.do"; // 개발서버 URL
|
|
||||||
private static String clientId = "해당 시스템의 클라이언트 아이디";
|
|
||||||
private static String clientId = "30354835c3684ff79e7fb1bfd3a768f6";
|
|
||||||
private static String clientSecret = "해당 시스템의 클라이언트 시크릿";
|
|
||||||
private static String clientSecret = "1ueil5ee05wr0t1gjy1ppt212";
|
|
||||||
private static String scope = "http://sso.copyright.or.kr"; // 고정
|
|
||||||
*/
|
|
||||||
// 초기화 함수
|
|
||||||
@Override
|
|
||||||
public void init(FilterConfig filterConfig) throws ServletException {
|
|
||||||
}
|
|
||||||
|
|
||||||
// 필터 함수, 브라우저에서 요청이 오면 필터 매핑에 의해 호출된다.
|
|
||||||
@Override
|
|
||||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
|
||||||
throws IOException, ServletException {
|
|
||||||
|
|
||||||
//SSO 로그인 연계 BandiSSOAgent 생성
|
|
||||||
BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);
|
|
||||||
|
|
||||||
// 사용자 접속 ip
|
|
||||||
// agent.getLocalServerIp(request);
|
|
||||||
String client_ip = "127.0.0.1";
|
|
||||||
|
|
||||||
//filter에서 세션을 받아오기위해 ServletRequest -> HttpServletRequest 형변환
|
|
||||||
HttpServletRequest req = (HttpServletRequest) request;
|
|
||||||
HttpServletResponse resp = (HttpServletResponse) response;
|
|
||||||
|
|
||||||
//현재 세션 정보 받아오기
|
|
||||||
HttpSession session = req.getSession();
|
|
||||||
|
|
||||||
//SsoLoginVO 세션 정보 취득
|
|
||||||
SsoLoginVO ssoLoginVO = new SsoLoginVO();
|
|
||||||
ssoLoginVO = (SsoLoginVO)session.getAttribute("SSOLoginVO");
|
|
||||||
|
|
||||||
//LoginVO 세션 정보 취득
|
|
||||||
LoginVO loginVO = new LoginVO();
|
|
||||||
loginVO = (LoginVO)session.getAttribute("LoginVO");
|
|
||||||
|
|
||||||
try {
|
|
||||||
if(ssoLoginVO != null) {
|
|
||||||
if("N".equals(ssoLoginVO.getOtherUser())){
|
|
||||||
HashMap<String, String> tokenValid = agent.tokenValid(ssoLoginVO.getAccess_token(), client_ip);
|
|
||||||
if(tokenValid.get("error").equals("0000")) {
|
|
||||||
if(loginVO == null) {
|
|
||||||
// HttpServletResponse httpServletResponse = (HttpServletResponse) response;
|
|
||||||
// httpServletResponse.sendRedirect("/web/user/login/actionSecurityLogin.do");
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
//SSO 로그아웃 요청
|
|
||||||
agent.logout(ssoLoginVO.getAccess_token(), client_ip);
|
|
||||||
if(session.getAttribute("SSOLoginVO") != null) {
|
|
||||||
session.removeAttribute("SSOLoginVO");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Spring Security 로그아웃*/
|
|
||||||
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
|
|
||||||
if (auth != null) {
|
|
||||||
new SecurityContextLogoutHandler().logout(req, resp, auth);
|
|
||||||
}
|
|
||||||
//LoginVO 세션 remove
|
|
||||||
if(session.getAttribute("LoginVO") != null) {
|
|
||||||
session.removeAttribute("LoginVO");
|
|
||||||
}
|
|
||||||
|
|
||||||
session.setAttribute("SsoLogout", "Y");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
if(loginVO != null) {
|
|
||||||
|
|
||||||
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
|
|
||||||
if(! ("ROLE_ADMIN".equals(user.getAuthority())
|
|
||||||
|| "ROLE_ADR_ADMIN".equals(user.getAuthority())
|
|
||||||
|| "ROLE_VISIT".equals(user.getAuthority())
|
|
||||||
)
|
|
||||||
){
|
|
||||||
/*Spring Security 로그아웃*/
|
|
||||||
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
|
|
||||||
if (auth != null) {
|
|
||||||
new SecurityContextLogoutHandler().logout(req, resp, auth);
|
|
||||||
}
|
|
||||||
//LoginVO 세션 remove
|
|
||||||
if(session.getAttribute("LoginVO") != null) {
|
|
||||||
session.removeAttribute("LoginVO");
|
|
||||||
}
|
|
||||||
|
|
||||||
session.setAttribute("SsoLogout", "Y");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception e) {
|
|
||||||
System.out.println("Exception Occured!!!");
|
|
||||||
}
|
|
||||||
chain.doFilter(request, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void destroy() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@ -119,6 +119,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
|||||||
|
|
||||||
private String nos;
|
private String nos;
|
||||||
private String ddlnCd;
|
private String ddlnCd;
|
||||||
|
private String ddlnCdNm;
|
||||||
|
|
||||||
private String nosCnt1; //신청인
|
private String nosCnt1; //신청인
|
||||||
private String eduPlace; //교육장소
|
private String eduPlace; //교육장소
|
||||||
@ -1112,5 +1113,12 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
|||||||
}
|
}
|
||||||
public void setCmdTrgtInfoOrd(String cmdTrgtInfoOrd) {
|
public void setCmdTrgtInfoOrd(String cmdTrgtInfoOrd) {
|
||||||
this.cmdTrgtInfoOrd = cmdTrgtInfoOrd;
|
this.cmdTrgtInfoOrd = cmdTrgtInfoOrd;
|
||||||
}
|
}
|
||||||
|
public String getDdlnCdNm() {
|
||||||
|
return ddlnCdNm;
|
||||||
|
}
|
||||||
|
public void setDdlnCdNm(String ddlnCdNm) {
|
||||||
|
this.ddlnCdNm = ddlnCdNm;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -102,7 +102,7 @@
|
|||||||
AND B.AUTHOR_CODE IN ('ROLE_ANONYMOUS', 'ROLE_USER_MEMBER', 'ROLE_USER_MANAGER')
|
AND B.AUTHOR_CODE IN ('ROLE_ANONYMOUS', 'ROLE_USER_MEMBER', 'ROLE_USER_MANAGER')
|
||||||
</isEqual>
|
</isEqual>
|
||||||
<isNotEqual property="authorCode" compareValue="ROLE_ANONYMOUS">
|
<isNotEqual property="authorCode" compareValue="ROLE_ANONYMOUS">
|
||||||
AND B.AUTHOR_CODE IN ('ROLE_ADMIN', 'ROLE_ADR_ADMIN', 'ROLE_VISIT')
|
AND B.AUTHOR_CODE IN ('ROLE_ADMIN', 'ROLE_ADR_ADMIN', 'ROLE_VISIT', 'ROLE_ADR_JRSDC', 'ROLE_ADR_KIPO', 'ROLE_ADR_PREV')
|
||||||
</isNotEqual>
|
</isNotEqual>
|
||||||
</isNotEmpty>
|
</isNotEmpty>
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
|
|||||||
@ -96,7 +96,14 @@ function fncGoDetail(prcsAplctPrdOrd, url){
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</a>
|
</a>
|
||||||
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
||||||
<p class="list_date"><ve:code codeId="VEA004" code="${list.ddlnCd}"/></p>
|
<p class="list_date">
|
||||||
|
<c:if test="${list.ddlnCd lt 30}">
|
||||||
|
<ve:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${list.ddlnCd ge 30}">
|
||||||
|
<c:out value="${list.ddlnCdNm}"/>
|
||||||
|
</c:if>
|
||||||
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</ul>
|
</ul>
|
||||||
@ -105,7 +112,7 @@ function fncGoDetail(prcsAplctPrdOrd, url){
|
|||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="box_tit">
|
<div class="box_tit">
|
||||||
<p>확정과정현황</p>
|
<p>확정과정현황</p>
|
||||||
<button type="button" class="btn_plus" onclick="fncGoList('<c:url value="/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do"/>');">더보기 <i class="icon plus"></i></button>
|
<button type="button" class="btn_plus" onclick="fncGoList('<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do"/>');">더보기 <i class="icon plus"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="box_cont">
|
<div class="box_cont">
|
||||||
<ul class="dashboard_list">
|
<ul class="dashboard_list">
|
||||||
@ -122,7 +129,14 @@ function fncGoDetail(prcsAplctPrdOrd, url){
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</a>
|
</a>
|
||||||
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
||||||
<p class="list_date"><ve:code codeId="VEA004" code="${list.ddlnCd}"/></p>
|
<p class="list_date">
|
||||||
|
<c:if test="${list.ddlnCd lt 30}">
|
||||||
|
<ve:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${list.ddlnCd ge 30}">
|
||||||
|
<c:out value="${list.ddlnCdNm}"/>
|
||||||
|
</c:if>
|
||||||
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</ul>
|
</ul>
|
||||||
@ -177,7 +191,14 @@ function fncGoDetail(prcsAplctPrdOrd, url){
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</a>
|
</a>
|
||||||
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
||||||
<p class="list_date"><ve:code codeId="VEA004" code="${list.ddlnCd}"/></p>
|
<p class="list_date">
|
||||||
|
<c:if test="${list.ddlnCd lt 30}">
|
||||||
|
<ve:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${list.ddlnCd ge 30}">
|
||||||
|
<c:out value="${list.ddlnCdNm}"/>
|
||||||
|
</c:if>
|
||||||
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</ul>
|
</ul>
|
||||||
@ -203,7 +224,14 @@ function fncGoDetail(prcsAplctPrdOrd, url){
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</a>
|
</a>
|
||||||
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
||||||
<p class="list_date"><ve:code codeId="VEA004" code="${list.ddlnCd}"/></p>
|
<p class="list_date">
|
||||||
|
<c:if test="${list.ddlnCd lt 30}">
|
||||||
|
<ve:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${list.ddlnCd ge 30}">
|
||||||
|
<c:out value="${list.ddlnCdNm}"/>
|
||||||
|
</c:if>
|
||||||
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</ul>
|
</ul>
|
||||||
@ -235,7 +263,14 @@ function fncGoDetail(prcsAplctPrdOrd, url){
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</a>
|
</a>
|
||||||
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
||||||
<p class="list_date"><ve:code codeId="VEA004" code="${list.ddlnCd}"/></p>
|
<p class="list_date">
|
||||||
|
<c:if test="${list.ddlnCd lt 30}">
|
||||||
|
<ve:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${list.ddlnCd ge 30}">
|
||||||
|
<c:out value="${list.ddlnCdNm}"/>
|
||||||
|
</c:if>
|
||||||
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</ul>
|
</ul>
|
||||||
@ -261,7 +296,14 @@ function fncGoDetail(prcsAplctPrdOrd, url){
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</a>
|
</a>
|
||||||
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
<p class="list_writer">${list.nosCnt1} / ${list.nos}</p>
|
||||||
<p class="list_date"><ve:code codeId="VEA004" code="${list.ddlnCd}"/></p>
|
<p class="list_date">
|
||||||
|
<c:if test="${list.ddlnCd lt 30}">
|
||||||
|
<ve:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${list.ddlnCd ge 30}">
|
||||||
|
<c:out value="${list.ddlnCdNm}"/>
|
||||||
|
</c:if>
|
||||||
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user