목차

Session 방식 접근제어 권한설정

개요

표준프레임워크 3.9부터 Session 방식으로 접근제어 권한관리를 설정 할 수 있는 방법을 제공한다.
내부적으로 필요한 설정을 가지고 있고, XML Schema를 통해 필요한 설정만을 추가할 수 있도록 제공한다.
이 기능을 사용하기 위해서는 globals.properties 파일에서 Globals.Auth = session 로 설정되어 있어야 한다.

환경설정

pom.xml (dependency추가)

Session 방식의 접근제어 권한관리를 사용하기 위해서는 표준프레임워크 실행환경 구성요소중 org.egovframe.rte.fdl.access 라이브러리가 설치되어야 한다.

<dependency>
	<groupId>org.egovframe.rte</groupId>
	<artifactId>org.egovframe.rte.fdl.access</artifactId>
	<version>${org.egovframe.rte.version}</version>
</dependency>

XML namespace 및 schema 설정

접근제어를 설정하기 위해서는 다음과 같은 xml 선언이 필요하다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:egov-access="http://maven.egovframe.go.kr/schema/egov-access"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://maven.egovframe.go.kr/schema/egov-access http://maven.egovframe.go.kr/schema/egov-access/egov-access-4.1.0.xsd">

Session 접근제어 설정

Session 방식 접근제어 권한관리에 대한 기본 설정 정보를 제공한다.

예:

<egov-access:config id="egovAccessConfig"
	globalAuthen="session"
	mappingPath="/**/*.do"
	dataSource="egov.dataSource"
	loginUrl="/uat/uia/egovLoginUsr.do"
	accessDeniedUrl="/uat/uia/egovLoginUsr.do?auth_error=1"
	sqlAuthorityUser="SELECT CONCAT(B.USER_SE, B.USER_ID) USERID, A.AUTHOR_CODE AUTHORITY
		FROM COMTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
		WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID"
	sqlRoleAndUrl="SELECT A.ROLE_PTTRN URL, B.AUTHOR_CODE AUTHORITY
		FROM COMTNROLEINFO A, COMTNAUTHORROLERELATE B
		WHERE A.ROLE_CODE = B.ROLE_CODE
		AND A.ROLE_TY = 'url'
		ORDER BY A.ROLE_SORT"
	requestMatcherType="regex"
	excludeList="/uat/uia/**, /index.do, /EgovLeft.do, /EgovContent.do, /EgovTop.do, /EgovBottom.do, /validator.do, /uss/umt/**, /sec/rnc/EgovRlnmCnfirm.do, /EgovModal.do"
/>

속성 설명

속성 설명 필수여부 비고
globalAuthen globals.properties 설정과 동일하게 적용 (Globals.Auth = session 설정 사용시 globalAuthen = “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 에서 <c:import> 혹은 <jsp:include> 사용시 호출대상 URL이 .do 인 경우 :
호출대상.do 뿐만 아니라 .do URL이 호출하는 JSP파일도 권한관리에 등록해야 함

Session 접근제어 재설정

Session 접근제어에서 사용자의 롤권한변경 후 서버 재기동 없이 적용하는 방법을 제공한다.

예:

import org.egovframe.rte.fdl.access.bean.AuthorityResourceMetadata;
 
@Resource(name="authorityResource")
private AuthorityResourceMetadata sessionResourceMetadata;
 
@RequestMapping(value="/insertAuthorGroupInsert.do")
public String insertAuthorGroup() {
...
    sessionResourceMetadata.reload();
...
}