password not matched!!!

나무꾼의 작업일지·2023년 4월 11일
0

eGovFramework

목록 보기
1/3

문제

전자정부프레임워크 3.9에서 4.1로 이관 중.

기존 프로젝트가 SpringFramework 기반이었고, SpringBoot 기반으로 변경하기 위해 template 프로젝트 생성 후 기존 DB에 맞게 최적화 작업 중 이런 팝업이 뜨며 에러가 발생했다.

이클립스에는 아래와 같은 에러가 표출되고 있었다.

java.lang.IllegalArgumentException: password not matched!!!

[logback]15:07:14.962 [http-nio-8080-exec-6] ERROR o.e.r.f.c.i.EgovARIACryptoServiceImpl - password not matched!!!
[logback]15:07:17.060 [http-nio-8080-exec-6] DEBUG o.s.web.servlet.DispatcherServlet - Failed to complete request: java.lang.IllegalArgumentException: password not matched!!!
[logback]15:07:17.061 [http-nio-8080-exec-6] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: password not matched!!!] with root cause
java.lang.IllegalArgumentException: password not matched!!!
	at org.egovframe.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl.encrypt(EgovARIACryptoServiceImpl.java:67)
	at egovframework.let.cop.bbs.web.EgovBBSManageApiController.selectBoardArticle(EgovBBSManageApiController.java:240)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	⁞

해결

1. 아래 코드로 debug모드 혹은 System.out.print()을 사용하여 encrypedKey값 복사 후 해당 코드 삭제

EgovBBSManageApiController.selectBoardArticle

⁞
EgovPasswordEncoder encoder = new EgovPasswordEncoder();
String encrypedKey = encoder.encryptPassword(EgovFileDownloadController.ALGORITM_KEY);
⁞

2.아래 경로에 해당 암호키 삽입

egovframework.com.config.EgovConfigAppCommon.java

⁞
@Bean
	public EgovPasswordEncoder egovPasswordEncoder() {
		EgovPasswordEncoder egovPasswordEncoder = new EgovPasswordEncoder();
		egovPasswordEncoder.setAlgorithm("SHA-256");
		egovPasswordEncoder.setHashedPassword("여기에 암호키 삽입");
		return egovPasswordEncoder;
	}
⁞

결론

보안상의 이유로 application.properties의 Globals.crypto.algoritm값을 변경하였는데 egovframework.com.config.EgovConfigAppCommon.java에 해당 키가 암호화된 값을 set 하는 부분이 있는 줄 몰랐다..

egovframework.com.config의 파일들이 SpringFramework였을 때의 resources/spring/com/context-*.xml과 같은 Spring 설정 파일이라는 것을 알았다.

profile
열 번 찍어 안넘어가는 코드 없다

0개의 댓글

관련 채용 정보