전자정부 프레임워크에서
암호화가 바로 동작하지 않는다...
다음과 같은 두 개의 에러다
Class 'egovframework.rte.fdl.cryptography.EgovPasswordEncoder' not found
Class 'egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl' not found
정의 된 xml 에 가보니 빨간색 에러표시가 있네..
src/main/resources/egovframework/spring/com/context-crypto.xml
그래서 일단 pom.xml 에 depencency 추가
<!-- 암호화 --> <dependency> <groupId>egovframework.rte</groupId> <artifactId>egovframework.rte.fdl.crypto</artifactId> <version>${egovframework.rte.version}</version> </dependency> |
저장을 하면
maven lib에 있는데도 에러가 사라지지 않는다.
정말 이상하다.. 소스는 다른게 없는데 뭐가 에러지?
문제는 해당 xml 파일이 refresh 되어야 하는데 안된게 문제인 듯 하다..(왜?)
어쩄거나
src/main/resources/egovframework/spring/com/context-crypto.xml
파일에서 우연찮게
<bean id="egovARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl"> <property name="passwordEncoder" ref="egovPasswordEncoder" /> <property name="blockSize" value="1024" /> </bean> |
다음과 같이 바꾼 뒤 저장을 했더니 에러가 사라졌다.
<bean id="egovARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl"> <property name="passwordEncoder" ref="egovPasswordEncoder" /> <property name="blockSize" value="1025" /><!-- default : 1024 --> </bean> |
1. property 파일에 추가
src/main/resources/egovframework/egovProps/globals.properties
#암호화 #default (SHA-256) Globals.crypto.password.algorithm=SHA-256 #password = egovframe Globals.crypto.hashed.password=gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ= |
2. context-crypto 파일에 해당 값으로 변경
src/main/resources/egovframework/spring/com/context-crypto.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <bean id="egovPasswordEncoder" class="egovframework.rte.fdl.cryptography.EgovPasswordEncoder"> <property name="algorithm" value="${Globals.crypto.password.algorithm}" /><!-- default : SHA-256 --> <property name="hashedPassword" value="${Globals.crypto.hashed.password}" /> </bean> <bean id="egovARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl"> <property name="passwordEncoder" ref="egovPasswordEncoder" /> <property name="blockSize" value="1025" /><!-- default : 1024 --> </bean>
</beans> |
참고 : 전자정부 프레임워크에서는 암호화 관련
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:fdl:encryption_decryption#%EA%B0%80%EC%9D%B4%EB%93%9C%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8_guide_program