목차

설정 간소화

개요

표준프레임워크 3.0에서는 Server security에 대하여 설정을 간소화 할 수 있는 방법을 제공한다.

내부적으로 필요한 설정을 가지고 있고, XML Schema를 통해 필요한 설정만을 추가할 수 있도록 제공한다.

XML namespace 및 schema 설정

설정 간소화 기능을 사용하기 위해서는 다음과 같은 xml 선언이 필요하다.

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:egov-security="http://www.egovframe.go.kr/schema/egov-security"
	xmlns:security="http://www.springframework.org/schema/security"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.egovframe.go.kr/schema/egov-security http://www.egovframe.go.kr/schema/egov-security/egov-security-3.0.xsd
		http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd">

Security Config 설정

Security에 대한 기본 설정 정보를 제공한다.

예:

<egov-security:config id="securityConfig" 
	loginUrl="/cvpl/EgovCvplLogin.do"
	logoutSuccessUrl="/cvpl/EgovCvplLogin.do"
	loginFailureUrl="/cvpl/EgovCvplLogin.do?login_error=1" 
	accessDeniedUrl="/system/accessDenied.do"
 
	dataSource="dataSource"
	jdbcUsersByUsernameQuery="SELECT USER_ID,PASSWORD,ENABLED,USER_NAME,BIRTH_DAY,SSN FROM USERS WHERE USER_ID = ?"
	jdbcAuthoritiesByUsernameQuery="SELECT USER_ID,AUTHORITY FROM AUTHORITIES WHERE USER_ID = ?"
	jdbcMapClass="egovframework.rte.fdl.security.userdetails.EgovUserDetailsMapping"
 
	requestMatcherType="regex"
	hash="md5"
/>

속성 설명

속성 설명 필수여부 비고
loginUrl 로그인 페이지 URL 필수
logoutSuccessUrl 로그아웃 처리 시 호출되는 페이지 URL 필수
loginFailureUrl 로그인 실패 시 호출되는 페이지 URL 필수
accessDeniedUrl 권한이 없는 경우 호출되는 페이지 URL 필수
dataSource DBMS 설정 dataSource 선택 미지정시 'dataSource' bean name 사용
jdbcUsersByUsernameQuery 인증에 사용되는 query 선택 default : “select user_id, password, enabled, users.* from users where user_id = ?”
jdbcAuthoritiesByUsernameQuery 인증된 사용자의 권한(authority) 조회 query 선택 default : “select user_id, authority from authorites where user_id = ?”
jdbcMapClass 사용자 정보 mapping 처리 class 선택 default : egovframework.rte.fdl.security.userdetails.DefaultMapUserDetailsMapping
requestMatcherType 패턴 매칭 방식(regex, ant, ciRegex: case-insensitive regex) 선택 default : regex
hash 패스워드 저장 방식 (sha-256, plaintext, sha, md5, bcrypt) 선택 default : sha-256
hashBase64 hash값 base64 인코딩 사용 여부 선택 default : true
concurrentMaxSessons 동시 접속가능 연결수 선택 default : 999
concurrentExpiredUrl expired된 경우 redirect되는 페이지 URL 선택
defaultTargetUrl 로그인 성공시 redirect되는 페이지 URL 선택 미지정시 처음 접속하고자 했던 페이지 URL로 redirect됨

Security Config Initializer 설정

Security에 대한 초기화 처리 정보를 제공한다.

예:

<egov-security:initializer id="initializer"  
	supportPointcut="true"
/>

속성 설명

속성 설명 필수여부 비고
supportPointcut pointcut 방식 지원 여부 선택 default : false
supportMethod method 방식 지원 여부 선택 default : true

Security Object Config 설정

Security에 대한 기본 query 설정 정보를 제공한다.

예:

<egov-security:secured-object-config id="securedObjectConfig"
	roleHierarchyString="
			ROLE_ADMIN > ROLE_USER
			ROLE_USER > ROLE_RESTRICTED
			ROLE_RESTRICTED > IS_AUTHENTICATED_FULLY
			IS_AUTHENTICATED_FULLY >	IS_AUTHENTICATED_REMEMBERED
			IS_AUTHENTICATED_REMEMBERED > IS_AUTHENTICATED_ANONYMOUSLY"
	sqlRolesAndUrl="
			SELECT auth.URL url, code.CODE_NM authority
			FROM RTETNAUTH auth, RTETCCODE code
			WHERE code.CODE_ID = auth.MNGR_SE"
/>

속성 설명

속성 설명 필수여부 비고
roleHierarchyString 계층처리를 위한 설정 문자열 지정 선택 미지정시 DB로부터 지정된 설정정보 지정
sqlRolesAndUrl URL 방식 role 지정 query 선택 미지정시 SecuredObjectDAO의 기본 query가 처리됨
sqlRolesAndMethod method 방식 role 지정 query 선택
sqlRolesAndPointcut pointcut 방식 role 지정 query 선택
sqlRegexMatchedRequestMapping request 마다 best matching url 보호자원 지정 query 선택
sqlHierarchicalRoles 계층처리를 위한 query 선택