====== Session 방식 접근제어 권한설정 ======
===== 개요 =====
표준프레임워크 3.9부터 Session 방식으로 접근제어 권한관리를 설정 할 수 있는 방법을 제공한다.\\
내부적으로 필요한 설정을 가지고 있고, XML Schema를 통해 필요한 설정만을 추가할 수 있도록 제공한다. \\
이 기능을 사용하기 위해서는 globals.properties 파일에서 Globals.Auth = session 로 설정되어 있어야 한다.
===== 환경설정 =====
==== pom.xml (dependency추가) ====
Session 방식의 접근제어 권한관리를 사용하기 위해서는 표준프레임워크 실행환경 구성요소중 egovframework.rte.fdl.access 라이브러리가 설치되어야 한다.
egovframework.rte
egovframework.rte.fdl.access
${egovframework.rte.version}
==== XML namespace 및 schema 설정 ====
접근제어를 설정하기 위해서는 다음과 같은 xml 선언이 필요하다.
===== Session 접근제어 설정 =====
Session 방식 접근제어 권한관리에 대한 기본 설정 정보를 제공한다.
예:
==== 속성 설명 ====
^ 속성 ^ 설명 ^ 필수여부 ^ 비고 ^
| globalAuthen | globals.properties 설정(전자정부 프레임워크 기본 설정 중 dummy, security 사용 시 session 으로 재설정됨) | 필수 | |
| dataSource | DBMS 설정 dataSource | 필수 | |
| loginUrl | 로그인 페이지 URL | 필수 | |
| accessDeniedUrl | 권한이 없는 경우 호출되는 페이지 URL | 필수 | |
| sqlAuthorityUser | 인증된 사용자의 권한(authority) 조회 query | 필수 | |
| sqlRoleAndUrl | Role 및 URL 패턴 | 필수 | |
| requestMatcherType | 패턴 매칭 방식(regex, ant, ciRegex: case-insensitive regex) | 선택 | default : regex |
| excludeList | 접근제한 예외처리 URL(구분자: ,) | 필수 | |
* excludeList(접근제한 예외 목록 URL) 예시 값 \\
회원관리 : /uat/uia/%%*%%* \\
실명확인 : /sec/rnc/%%*%%* \\
우편번호 : /sym/ccm/zip/%%*%%* \\
로그인이미지관리 : /uss/ion/lsi/%%*%%* \\
약관확인 : /uss/umt/%%*%%* \\
포털예제배너 : /uss/ion/bnr/getBannerImage.do \\
처음화면 : /index.do \\
로그인화면이미지 : /cmm/fms/getImage.do \\
좌측메뉴 : /EgovLeft.do \\
초기화면 : /EgovContent.do \\
상단메뉴 : /EgovTop.do \\
하단메뉴 : /EgovBottom.do \\
모달팝업 : /EgovModal.do \\
만족도조사 : /cop/stf/selectSatisfactionList.do \\
만족도조사 선택 : /cop/stf/selectSingleSatisfaction.do \\
댓글 : /cop/cmt/selectArticleCommentList.do \\
댓글 선택 : /cop/cmt/updateArticleCommentView.do \\
* 동적 include 방식 - JSP 에서 혹은 구현 - 을 사용하는 URL 인 경우 **대상.jsp** 및 **호출대상.do** 도 **권한관리** 에 등록해야 함
===== Session 접근제어 재설정 =====
Session 접근제어에서 사용자의 롤권한변경 후 서버 재기동 없이 적용하는 방법을 제공한다.
예:
import egovframework.rte.fdl.access.bean.AuthorityResourceMetadata;
@Resource(name="authorityResource")
private AuthorityResourceMetadata sessionResourceMetadata;
@RequestMapping(value="/insertAuthorGroupInsert.do")
public String insertAuthorGroup() {
...
sessionResourceMetadata.reload();
...
}