공통컴포넌트 3.8 환경설정

표준프레임워크 3.5 에서는 web.xml 및 context-egovuserdetailshelper.xml의 파일을 설정하여 데이터베이스와 권한방식를 변경할 수 있었습니다.

표준프레임워크 3.6/3.7/3.8 에서는 Servlet3.1 기능으로 globals.properties를 통한 설정 간소화로 데이터베이스와 인증/권한방식을 변경할 수 있습니다.

1. 데이터베이스 설정
2. 인증/권한방식 설정
3. 로그인 인증 제한

1. 데이터베이스 설정

1) globals.properties 설정파일 기준으로 spring profile 서비스를 이용하여 데이터베이스 환경 설정을 한다.
2) DbType별 데이터베이스 정보를 설정 한다.
* Globals.DbType 기준으로 context-datasource.xml 파일에 설정되어 있는 Spring Pofile기능에 의하여 dataSource 빈이 활성화 된다.
* 해당 기능을 활용하여 테스트DB, 검증DB, 운영DB로 분리 가능하다.

# DB서버 타입(mysql, oracle, altibase, tibero, cubrid, mariadb, postgresql) - datasource 및 sqlMap 파일 지정에 사용됨
Globals.DbType = mysql
 
#mysql
Globals.mysql.DriverClassName=net.sf.log4jdbc.DriverSpy
Globals.mysql.Url=jdbc:log4jdbc:mysql://127.0.0.1:3336/com
Globals.mysql.UserName = com
Globals.mysql.Password = 
 
                        .
                        .
                        .
#oracle
#altibase
#tibero
#cubrid
#mariadb
#postgresql

사용하는 데이터베이스를 변경하였을 경우에는 pom.xml의 jdbc 드라이버에 대한 Dependency를 설정해야 한다. 3rd party library의 경우에는 직접 Local Repository에 library를 넣어 주거나 Nexus서버를 구성하여 다운로드 받을 수 있다. Nexus에 대한 자세한 설정은 개발환경의 Nexus페이지를 참조한다.

<EXAMPLE>

	<!--  mysql -->
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.31</version>
	</dependency>
         <!-- oracle 11g driver -->
	<dependency>
		<groupId>ojdbc</groupId>
		<artifactId>ojdbc</artifactId>
		<version>6-11</version>
	</dependency>
	<!-- altibase driver -->
	<dependency>
		<groupId>altibase</groupId>
		<artifactId>altibase-jdbc-driver</artifactId>
		<version>5.1.3.18</version>
	</dependency>	
	<!-- tibero driver -->
	<dependency>
		<groupId>com.tmax.tibero</groupId>
		<artifactId>tibero-jdbc</artifactId>
		<version>3.0</version>
	</dependency>
        <dependency>
            <groupId>cubrid</groupId>
            <artifactId>cubrid-jdbc</artifactId>
            <version>8.4</version>
        </dependency>
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>2.2.5</version>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.4.1208</version>
        </dependency>

2. 인증/권한방식 설정

인증/권한 방식은 표준프레임워크 3.5 이하 버전에서 개발자가 수동으로 관련 XML 설정하던 불편한 점을
표준프레임워크 3.6/3.7/3.8 버전에서 개선 및 간소화가 되어서 globals.properties 설정만으로 사용가능 합니다.
간소화 방식은 크게 세가지 방식으로 제공합니다.
- dummy : 더미 방식으로 사용자 권한을 인증함
- session : 세션 방식으로 사용자의 권한을 인증함
- security : spring security 방식으로 사용자 권한을 인증함


Servlet 3.1 도입으로 web.xml을 dynamic하게 설정 가능하여 간소화가 가능해 졌습니다.
WebApplicationInitializer를 통해 egovframework.com.cmm.config.EgovWebApplicationInitializer 클래스에 의하여 설정 파일이 동적으로 설정 됩니다.
security 모드일때 DelegatingFilterProxy, EgovSpringSecurityLoginFilter, EgovSpringSecurityLogoutFilter의 설정내역이 FilterRegistration 빈에 등록 됩니다.
Spring Profile 기능으로 인증/권한방식에 따라서 egovUserDetailsHelper 빈을 동적으로 생성 합니다.

# 인증/권한 인증방식(dummy, session, security) - 사용자의 로그인 시 인증 방식을 결정함
# dummy : 더미 방식으로 사용자 권한을 인증함
# session : 세션 방식으로 사용자 권한을 인증함
# security : spring security 방식으로 사용자 권한을 인증함
Globals.Auth = session

3. 로그인 인증 제한

표준프레임워크 공통컴포넌트 3.8은 무차별적인 로그인 시도에 대해 개인계정 취약점 강화를 위한 차단 기능을 제공한다. Globals.login.Lock에 true/false를 통해 사용/미사용 적용이 가능하며, 인증 시도 횟수 또한 Globals.login.LockCount에 value를 입력하여 설정이 가능하다.

  • Globals.login.Lock 의 default value = true
  • Globals.login.LockCount 의 default value = 5
# 로그인 인증 제한(login authentication limit)
# (사용 여부 설정값 : true, false)
Globals.login.Lock = true
# -인증 재시도 횟수
Globals.login.LockCount = 5
 
egovframework/com/v3.8/init_configration.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