설정 간소화

개요

표준프레임워크 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됨
  • DefaultMapUserDetailsMapping : VO 없이 Map 방식으로 매핑을 처리함 (jdbcUsersByUsernameQuery 상에 지정된 컬럼에 대하여 camel case 방식으로 Hash Map 키 생성 처리)

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 선택
 
egovframework/rte3/fdl/server_security/xmlschema.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki