====== 공통컴포넌트 3.10 환경설정 ======
표준프레임워크 3.5 에서는 web.xml 및 context-egovuserdetailshelper.xml의 파일을 설정하여 데이터베이스와 권한방식를 변경할 수 있었습니다.
표준프레임워크 3.6/3.7/3.8/3.9 에서는 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에 대한 자세한 설정은 개발환경의 [[eGovframework:DEV:DEP:Nexus]]페이지를 참조한다.
mysql
mysql-connector-java
5.1.31
ojdbc
ojdbc
6-11
altibase
altibase-jdbc-driver
5.1.3.18
com.tmax.tibero
tibero-jdbc
3.0
cubrid
cubrid-jdbc
8.4
org.mariadb.jdbc
mariadb-java-client
2.2.5
org.postgresql
postgresql
9.4.1208
===== 2. 인증/권한방식 설정 =====
인증/권한 방식은 표준프레임워크 3.5 이하 버전에서 개발자가 수동으로 관련 XML 설정하던 불편한 점을 \\
표준프레임워크 3.6/3.7/3.8/3.9 버전에서 개선 및 간소화가 되어서 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.9은 무차별적인 로그인 시도에 대해 개인계정 취약점 강화를 위한 차단 기능을 제공한다.
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