티스토리 뷰

개인 프로젝트에서 템플릿 엔진으로 thymeleaf를 선택해 사용 중이다

spring-security와 엮어서 사용할 필요가 있었고

thymeleaf-extras-springsecurity 라이브러리를 추가하면 간단하게 사용 가능하다

다만 최신 릴리즈인 3.0.4.RELEASE는 2018년 10월에 나왔기에 나온지 좀 됐고 그 때문에 보안 취약점들이 몇개 걸린 상태다

 

(좌) 정식 릴리즈 버전, (우) 따끈따끈 최신 버전

 

2022년 1월에 따끈따끈한 보안 패치 버전이 나왔으나 정식 버전이 아닌 Milestone 버전이다

모험가 정신이 투철한 나는 참을 수 없이 M1 버전을 라이브러리에 넣고 돌렸더니 

굉장히 장황한 NoSuchMethodError가 뜨는 것이 아닌가

내 눈을 믿을 수 없어 서버 재시동 후 몇번 더 시도했지만 같은 에러를 뿜었다

마음을 가다듬고 스택 트레이스를 읽어보니 IWebContext에서 getExchange()를 호출할 때 발생하는 문제임을 파악했다

java.lang.NoSuchMethodError: 

org.thymeleaf.context.IWebContext.getExchange()Lorg/thymeleaf/web/IWebExchange

 

 

 

thymeleaf가 사용하는 IWebContext에 들어가봤더니 getExchange()가 없네??

thymeleaf는 spring-boot-starter로 땡겨왔고 extras-springsecurity5는 M1 버전을 넣었기 때문에 발생한 문제다

4년 만에 최신 버전이 나온 거니 보안 패치 뿐만 아니라 인터페이스에도 추가된 요소들이 좀 있나보다

 

 

해결법은 간단하다

1. thymeleaf 땡겨올 때 직접 최신 버전인 M1을 넣어준다

2. 보안 취약점을 떠안고 이전 버전의 extras-security5를 쓰면 된다

난 배포할 프로젝트가 아니라 이전 버전을 택했는데 실무에서 쓴다면 곧 나올 정식 버전을 기다리면 되지 않을까?

댓글
링크
글 보관함
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Total
Today
Yesterday