lucy-xss-servlet-filter Spring 6 용 JAR 빌드/적용 (1)

2023. 8. 17. 17:08· 자바/Spring Framework

lucy-xss-servlet-filter Spring 6 (jakarta servlet)에서 사용 에서 처리한 부분은,
아무래도 개발자 입장에서 찝찝할 수 밖에 없는게 사실이다.

좀 더 깔끔한 적용을 위해 직접 jar 파일을 만드는 법을 서술한다. 

자바 17로 컴파일이 되지 않으므로 JDK 11 을 설치하여 진행하도록 한다. 


1. 네이버에서 제공하는 lucy-xss-servlet-filter 를 clone 한다. 

git clone https://github.com/naver/lucy-xss-servlet-filter.git

2. pom.xml 을 다음과 같이 변경한다. 

더보기
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<organization>
		<name>Naver Labs</name>
		<url>http://lab.naver.com/</url>
	</organization>
	<groupId>com.navercorp.lucy</groupId>
	<artifactId>lucy-xss-servlet</artifactId>
	<packaging>jar</packaging>
	<version>2.0.1</version>
	<name>Lucy Xss Servlet Filter</name>
	<description>XSS Servlet Filter for Web Service</description>

	<parent>
		<groupId>org.sonatype.oss</groupId>
		<artifactId>oss-parent</artifactId>
		<version>7</version>
	</parent>

	<licenses>
		<license>
			<name>Apache License Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<scm>
		<url>https://github.com/naver/lucy-xss-servlet-filter</url>
		<connection>scm:git:git://github.com/naver/lucy-xss-servlet-filter.git</connection>
		<developerConnection>scm:git:git@github.com:naver/lucy-xss-servlet-filter.git</developerConnection>
		<tag>HEAD</tag>
	</scm>

	<developers>
		<developer>
			<name>Byeongmin Jeon</name>
			<id>todtod80</id>
		</developer>
		<developer>
			<name>Sanghyuk Jung</name>
			<id>benelog</id>
		</developer>
		<developer>
			<name>Hyeongkyu Lee</name>
			<id>leeplay</id>
		</developer>
		<developer>
			<name>HyunGil Jeong</name>
			<id>Xylus</id>
		</developer>
	</developers>

	<properties>
		<additionalparam>-Xdoclint:none</additionalparam>
		<maven.compiler.source>11</maven.compiler.source>
		<maven.compiler.target>11</maven.compiler.target>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.12.0</version>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>com.navercorp.lucy</groupId>
			<artifactId>lucy-xss</artifactId>
			<version>1.6.3</version>
		</dependency>
		<dependency>
			<groupId>jakarta.servlet</groupId>
			<artifactId>jakarta.servlet-api</artifactId>
			<version>6.0.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13.2</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>6.0.6</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<sourceDirectory>src/main/java</sourceDirectory>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/*.*</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/java</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</resource>
		</resources>
		<testResources>
			<testResource>
				<directory>src/test/resources</directory>
				<includes>
					<include>**/*.*</include>
				</includes>
			</testResource>
			<testResource>
				<directory>src/test/java</directory>
				<includes>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
				</includes>
			</testResource>
		</testResources>

		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.11.0</version>
					<configuration>
						<source>1.6</source>
						<target>1.6</target>
						<debug>true</debug>
						<optimize>true</optimize>
						<encoding>utf-8</encoding>

					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.1.2</version>
					<configuration>
						<excludes>
							<exclude>**/Mock*</exclude>
							<exclude>**/Abstract*</exclude>
							<exclude>**/*Helper</exclude>
							<exclude>**/*$*</exclude>
						</excludes>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.3.0</version>
					<executions>
						<execution>
							<id>attach-sources</id>
							<goals>
								<goal>jar</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>3.6.0</version>
					<configuration>
						<descriptors>
							<descriptor>release.xml</descriptor>
						</descriptors>
						<finalName>lucy-xss-servlet-${pom.version}</finalName>
						<appendAssemblyId>false</appendAssemblyId>
						<tarLongFileMode>gnu</tarLongFileMode>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>findbugs-maven-plugin</artifactId>
					<version>3.0.5</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<profile>
			<id>release-sign-artifacts</id>
			<activation>
				<property>
					<name>performRelease</name>
					<value>true</value>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>3.1.0</version>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>

pom.xml
0.01MB

3. https://god-logger.tistory.com/23 에서 src.zip 내부에 있는 XssEscapeServletFilter.java 와 XssEscapeServletFilterWrapper.java를 clone한 프로젝트 폴더 내부 src.main.java.com.navercorp.lucy.security.xss.servletfilter 로 이동시킨다. 

4. pom.xml - maven -  Reload Project 

5. 프로젝트 설정에서 sdk 와 언어 레벨을 11로 맞춰준다.

6. Artifacts - [+] - JAR - FromModules With Dependencies... 를 클릭한다. 

7. OK 를 클릭한다.

8. apply 혹은 ok를 눌러준다.

9. Build (빌드) -> Build Artifects...

10. 아래 빨간박스와 같이 클릭 

11. jar 파일 확인

 

다음 글을 조회하여 완성된 jar 파일을 적용하는 예제를 확인해보자.

lucy-xss-servlet-filter Spring 6 용 JAR 빌드/적용 (2)

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'자바 > Spring Framework' 카테고리의 다른 글

스프링 6.1 로 업그레이드시 매개변수,빈 인식 불가현상  (0) 2023.12.12
lucy-xss-servlet-filter Spring 6 용 JAR 빌드/적용 (2)  (0) 2023.08.17
lucy-xss-servlet-filter Spring 6 (jakarta servlet)에서 사용  (0) 2023.08.11
스프링 프레임워크 6 thymeleaf Layout 설정  (0) 2023.05.11
'자바/Spring Framework' 카테고리의 다른 글
  • 스프링 6.1 로 업그레이드시 매개변수,빈 인식 불가현상
  • lucy-xss-servlet-filter Spring 6 용 JAR 빌드/적용 (2)
  • lucy-xss-servlet-filter Spring 6 (jakarta servlet)에서 사용
  • 스프링 프레임워크 6 thymeleaf Layout 설정
신·기록
신·기록
개발 관련 이슈 해결방안, 활용 방법, 제품 리뷰 등을 기록하는 개인 블로그
신·기록
문제해결집
신·기록
전체
오늘
어제
  • 분류 전체보기 (175)
    • 뉴스 (9)
    • 제품 리뷰 (19)
    • 운영체제 및 서버 (53)
      • Linux (27)
      • Mac OS (8)
      • Proxmox (6)
      • Nginx (2)
      • Raspberry Pi (3)
      • Odroid M2 (4)
    • AI 인공지능 (7)
    • 모바일 (4)
      • Flutter (1)
      • 안드로이드 (1)
    • 데이터베이스 (11)
      • Mysql (9)
    • 자바 (11)
      • Spring Framework (9)
    • 자바스크립트 (19)
      • Node JS (4)
      • Electron Framework (10)
      • React & Next.js (4)
    • 클라우드 플랫폼 (4)
    • 학습 (4)
    • 이슈 (21)
    • 비디오게임 에뮬레이터 (2)
    • CPU 성능 순위 (1)
    • 그래픽카드 성능 순위 (1)
    • 기타 (7)

블로그 메뉴

  • 이용 원칙
  • 태그
  • 방명록

인기 글

최근 글

05-29 10:58
관련 문의는 방명록에 부탁드립니다.
본 블로그의 스킨 출처는 아래와 같습니다.
hELLO · Designed By 정상우.v4.2.2
신·기록
lucy-xss-servlet-filter Spring 6 용 JAR 빌드/적용 (1)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.