Aria(EgovEnvCrypto)를 TypeHandler 사용한 추상화 클래스로 사용이 안되나요?
- 작성자 :
- 신*윤
- 작성일 :
- 2023-11-02 15:46:08
- 조회수 :
- 578
- 구분 :
- 호환성확인
- 진행상태 :
- 완료
Q
aria를 사용하여 암호화 중인데 일반 클래스(컨트롤, 서비스 등)에서는 암복호가 정상작동 됩니다.
그런데 제가 하고 싶은건 mybatis에서 TypeHandler를 활용하여 xml에서 보다 쉽게 접근하게 만들려고 하는데 해당 부분을 개발하면
encrypt도 decrypt도 정상 동작을 안합니다.
방법이 있다면 알려주셨으면 좋겠고, 안되는 기능이라면 이 부분도 말씀 부탁 드립니다.
감사합니다.
public 추상화 클래스 implements TypeHandler<String>
/**
* 암호화
*
* @param value 변환 문자
* @return 암호화된 문자
*/
protected String encode(String value){
try{
value = this.cryptoService.encrypt(value);
}catch(Exception e){}
return value;
}
/**
* 복호화
*
* @param value 변환 문자
* @return 복호화된 문자
*/
protected String decode(String value){
try{
value = this.cryptoService.decrypt(value);
}catch(Exception e){
e.printStackTrace();
}
return value;
}
mybatismapper.xml
<resultMap type="CamelHashMap" id="mapid">
<result column="EML" property="EML" typeHandler="EmailCipherTypeHandler" />
</resultMap >
해당 코드의 일부입니다.
그런데 제가 하고 싶은건 mybatis에서 TypeHandler를 활용하여 xml에서 보다 쉽게 접근하게 만들려고 하는데 해당 부분을 개발하면
encrypt도 decrypt도 정상 동작을 안합니다.
방법이 있다면 알려주셨으면 좋겠고, 안되는 기능이라면 이 부분도 말씀 부탁 드립니다.
감사합니다.
public 추상화 클래스 implements TypeHandler<String>
/**
* 암호화
*
* @param value 변환 문자
* @return 암호화된 문자
*/
protected String encode(String value){
try{
value = this.cryptoService.encrypt(value);
}catch(Exception e){}
return value;
}
/**
* 복호화
*
* @param value 변환 문자
* @return 복호화된 문자
*/
protected String decode(String value){
try{
value = this.cryptoService.decrypt(value);
}catch(Exception e){
e.printStackTrace();
}
return value;
}
mybatismapper.xml
<resultMap type="CamelHashMap" id="mapid">
<result column="EML" property="EML" typeHandler="EmailCipherTypeHandler" />
</resultMap >
해당 코드의 일부입니다.
환경정보
-
- OS 정보 : window
- 표준프레임워크 버전 : 4.1.0
- JDK(JRE) 정보 : 11
- WAS 정보 : tomcat 8.5
- DB 정보 : oracle
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
TypeHandler는 빈이 아니기 때문에
ApplicationContext를 이용하여
다음과 같은 형태로 빈을 객체에 가져와야 할것으로 보입니다.
EgovEnvCryptoService cryptoService = (EgovEnvCryptoService)context.getBean("egovEnvCryptoService");
다음 GitHub 공개된 소스가 참고가 될듯 합니다.
https://github.com/eGovFramework/egovframe-common-components/blob/contribution/src/test/java/egovframework/com/crypto/xmlconfig/EgovEnvCryptoUserTest.java
감사합니다.
표준프레임워크 센터입니다.
TypeHandler는 빈이 아니기 때문에
ApplicationContext를 이용하여
다음과 같은 형태로 빈을 객체에 가져와야 할것으로 보입니다.
EgovEnvCryptoService cryptoService = (EgovEnvCryptoService)context.getBean("egovEnvCryptoService");
다음 GitHub 공개된 소스가 참고가 될듯 합니다.
https://github.com/eGovFramework/egovframe-common-components/blob/contribution/src/test/java/egovframework/com/crypto/xmlconfig/EgovEnvCryptoUserTest.java
감사합니다.