Spring Boot 설치
Spring Boot - DeepFinder 필터 적용은 SpringBoot 개발자가 작업하시는 것을 권고합니다.
Agent 통신 Process 설치
1) 설치 파일 다운로드
Repository에서 DeepFinder Agent 설치파일을 다운로드 합니다.
[root@localhost ~]# wget download.deepfinder.co.kr/DeepFinder/1.0/DeepFinder.tar.gz
2) 압축 해제
다운로드 된 설치파일의 압축을 해제합니다.
[root@localhost ~]# tar xvfz DeepFinder.tar
3) agent 스크립트 실행
설치에 필요한 정보(Manager Server IP, 회사/도메인그룹 인증정보)를 확인한 뒤 설치를 진행합니다.
[root@localhost DeepFinder]# ./agent.sh 1.1.1.1 611dd4300b91412e89xxxxxxxxxxx
************************************
SERVER IP : 1.1.1.1
AGENT ID : 611dd4300b91412e89xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
SYSTEM KERNEL : 4.4
CHECK OS : Linux
CHECK LINUX : Amazon Linux
CHECK SELinux : Disabled
CHECK OS BIT : x86_64 (64 bit)
DeepFinder install path : /usr/local/deepfinder
Starting DeepFinder Agent [ OK ]
- Finished DeepFinder WAF Install
************************************
Maven
Spring Boot를 배포할 서버에서 DeepFinder WAS Filter를 다운로드 받습니다.
Springboot2 http://download.deepfinder.co.kr/DeepFinder/1.0/java/DfFilter.jar
Springboot3 http://download.deepfinder.co.kr/DeepFinder/1.0/java/DfFilter_JaEE.jar
1) Maven Repository 등록
Maven Repository에 DeepFinder Filter를 삽입합니다.
삽입 예) \Maven경로>.\mvnw.cmd install:install-file -Dfile=DfFilter.jar_경로 -DgroupId="com.df" -DartifactId=DfFilter -Dversion="1.3.0" -Dpackaging=jar
2) pom.xml 내 DfFilter dependency 추가
Maven 내 pom.xml에 DfFilter Dependency를 추가합니다.
<dependencies>
...
<dependency>
<groupId>com.df</groupId>
<artifactId>DfFilter</artifactId>
<version>1.3.0</version>
</dependency>
...
<dependencies>
3) Application.java 내 소스코드 삽입
Application.java 소스에 Filter 설정 코드를 입력합니다.
Springboot2
@Bean
public FilterRegistrationBean<DfFilter> getFilterRegistrationBean(){
FilterRegistrationBean<DfFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new DfFilter());
registrationBean.setOrder(1);
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
Springboot3 버전
@Bean
public FilterRegistrationBean<DfFilter> getFilterRegistrationBean(){
FilterRegistrationBean<DfFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new DfFilter_jakarta_servlet());
registrationBean.setOrder(1);
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
4) Spring Multipart 설정
Spring Boot 의 Multipart Resolver 에 따라 /usr/local/deepfinder/conf/config.xml 에서 spring_multpartresolver 값을 조정합니다. Common Multipart Resolver 로 구현 시 0, Standard Servlet Multipart Resolver 로 구현 시 1 로 추가합니다.
<Filter
localhost="127.0.0.1"
filter_alive_check_time="90"
policy_update_time="30"
spring_multipartresolver="1"
1) spring_multipartresolver="0" → Common Multipart Resolver(기본값)
2) spring_multipartresolver="1" → Standard Servlet Multipart Resolver
Gradle
Spring Boot를 배포할 서버에서 DeepFinder WAS Filter를 다운로드 받습니다.
Springboot2 http://download.deepfinder.co.kr/DeepFinder/1.0/java/DfFilter.jar
Springboot3 http://download.deepfinder.co.kr/DeepFinder/1.0/java/DfFilter_JaEE.jar
1) Gradle 라이브러리 추가
Gradle 내 libs 디렉토리를 생성한 후 다운로드 받은 jar 파일을 삽입합니다.
2) build.gradle 내 Dependency 추가
build.gradle 파일 내 DfFilter의 Dependency를 추가합니다. Dependency 추가 후 gradle build를 동기화합니다.
Springboot2
dependencies {
implementation files('libs/DfFilter.jar')
}
Springboot3
dependencies {
implementation files('libs/DfFilter_JaEE.jar')
}
3) Application.java 설정
Application.java에서 DfFilter를 참조할 수 있도록 소스코드를 삽입합니다.
Sprinboot2 버전
@Bean
public FilterRegistrationBean getFilterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean(new DfFilter());
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
Springboot3 버전
@Bean
public FilterRegistrationBean getFilterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean(new DfFilter_jakarta_servlet());
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
4) Spring Multipart 설정
Spring Boot 의 Multipart Resolver 에 따라 /usr/local/deepfinder/conf/config.xml 에서 spring_multpartresolver 값을 조정합니다.
Common Multipart Resolver 로 구현 시 0, Standard Servlet Multipart Resolver 로 구현 시 1 로 추가합니다.
<Filter
localhost="127.0.0.1"
filter_alive_check_time="90"
policy_update_time="30"
spring_multipartresolver="1"
1) spring_multipartresolver="0" → Common Multipart Resolver(기본값)
2) spring_multipartresolver="1" → Standard Servlet Multipart Resolver