본 가이드는 전자정부 표준 프레임워크 기반의 배치운영 시스템의 원격지운영을 위한 가이드를 제공한다. 원격지운영이란 배치를 관리하는 서버와 배치가 실행되는 서버를 분리하여 2개의 서버를 운영하는 경우를 가정하였다.
배치심의 및 현황관리를 위한 배치운영과 배치실행을 분리하여 사용하기 위한 서버를 설치한다. 배치운영을 위한 서버를 배치운영서버, 배치실행을 위한 서버를 배치실행서버로 정의하고 설치를 진행한다.
1. 배치운영환경의 기본설치 전자정부 표준 프레임워크 배치운영 시스템 설치를 참조하여 설치한다.
2. src/main/resources/egovframework/spring/com/ 하위에 있는 context-scheduling-sym-bat.xml 파일을 열어 <!–
<bean id="egovSchdulUtl" class="egovframework.bopr.com.EgovSchdulUtl" init-method="init" destroy-method="destroy"> <property name="egovSchdulService" ref="egovSchdulService"/> <property name="egovSchdulResultService" ref="egovSchdulResultService" /> <property name="egovNotificationService" ref="EgovNotificationService"/> <property name="egovSmsInfoService" ref="EgovSmsInfoService"/> <property name="egovSndngMailService" ref="egovSndngMailService"/> <property name="egovSttusNtcnService" ref="egovSttusNtcnService" /> </bean>
–> 위 부분을 주석으로 처리하여 배치운영서버에서는 스케줄이 실행되지 않도록 설정한다.
3. egovframework.bopr.com.egovSchdulUtl클래스를 @Service(“egovSchdulUtl”) 이용하여 서비스로 등록한 후, init()메서드를 삭제한다.
4. global.properties 파일을 열어
# 배치 실행 정보 BATCH.EXECUT.url = http://IP:PORT
BATCH.EXECUT.url 프로퍼티에 원격지 서버의 IP와 Port 정보를 입력한다. 원격지를 사용하지 않을 때는 입력하지 않는다.
1. 배치운영과 동일하게 배치운영환경의 기본설치 전자정부 표준 프레임워크 배치운영 시스템 설치를 참조하여 설치한다.
2. SpringSecurity를 해제하기 위하여 src/main/webapp/WEB-INF/ 하위의 web.xml을 열어
<!-- 1. Spring Security 필터 설정 <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<listener> <listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class> </listener> --> <!-- 2. Spring Security 로그아웃 설정을 위한 필터 설정 <filter> <filter-name>EgovSpringSecurityLogoutFilter</filter-name> <filter-class>egovframework.com.sec.security.filter.EgovSpringSecurityLogoutFilter</filter-class> </filter> <filter-mapping> <filter-name>EgovSpringSecurityLogoutFilter</filter-name> <url-pattern>/uat/uia/actionLogout.do</url-pattern> </filter-mapping> -->
<!-- 2. Spring Security 로그인 설정을 위한 필터 설정 <filter> <filter-name>EgovSpringSecurityLoginFilter</filter-name> <filter-class>egovframework.com.sec.security.filter.EgovSpringSecurityLoginFilter</filter-class> <init-param> <description>로그인 실패시 반활 될 URL설정</description> <param-name>loginURL</param-name> <param-value>/uat/uia/egovLoginUsr.do</param-value> </init-param> </filter> <filter-mapping> <filter-name>EgovSpringSecurityLoginFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> -->
위 그림과 같이 1,2,3 부분을 주석으로 처리한다.
3. src/main/resources/egovframework/spring/ 하위의 context-egovuserdetailshelper.xml 파일을 열어
<!--인증된 유저의 LoginVO, 권한, 인증 여부를 확인 할 수있는 서비스 클래스--> <bean id="egovUserDetailsHelper" class="egovframework.com.cmm.util.EgovUserDetailsHelper"> <property name="egovUserDetailsService"> <!-- 원하는 bean id를 아래에 ref 태그에 적용한다 --> <ref bean="egovTestUserDetailsService" /> </property> </bean>
<!-- 0. 세션/시큐리티를 제외한 테스트위한 인증(더미)을 사용하는 빈 --> <bean id="egovTestUserDetailsService" class="egovframework.com.cmm.service.impl.EgovTestUserDetailsServiceImpl"/>
<!-- 1. 세션을 이용한 인증을 사용하는 빈 --> <!-- <bean id="egovUserDetailsSessionService" class="egovframework.com.cmm.service.impl.EgovUserDetailsSessionServiceImpl"/> -->
<!-- 2. 스프링 시큐리티를 이용한 인증을 사용할 빈 <bean id="egovUserDetailsSecurityService" class="egovframework.com.sec.ram.service.impl.EgovUserDetailsSecurityServiceImpl"/> -->
이렇게 주석 처리된 부분을 수정하여 egovUserDetailsSecurityService 대신 egovTestUserDetailsService 빈을 사용하도록 한다.