표준프레임워크 3.0에서는 Server security에 대하여 설정을 간소화 할 수 있는 방법을 제공한다.
내부적으로 필요한 설정을 가지고 있고, XML 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에 대한 기본 설정 정보를 제공한다.
예:
<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에 대한 초기화 처리 정보를 제공한다.
예:
<egov-security:initializer id="initializer" supportPointcut="true" />
속성 | 설명 | 필수여부 | 비고 |
---|---|---|---|
supportPointcut | pointcut 방식 지원 여부 | 선택 | default : false |
supportMethod | method 방식 지원 여부 | 선택 | default : true |
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 | 선택 | 〃 |