Masking처리
설명
public class SampleResponse {
private Long id;
@MaskString(type = MaskingType.NAME_EN)
private String name;
private String description;
}커스텀 MaskingUtils 적용
마지막 업데이트
다음은 Masking 처리에 대한 설명입니다.
변경점
Masking 처리를 DAO ↔︎ DBMS에서 MessageConverter (응답값 반환 처리 모듈)로 변경하였습니다.
기존에 사용되었던 Mybatis 인터셉터 모듈(<plugin interceptor="com.x2bee.common.base.masking.MybatisMaskingInterceptor"/>)은 모두 삭제되었습니다.
이전처럼 DAO단에서 변환을 처리하면 서비스 레이어에서 비즈니스 로직을 처리할 때 불편하므로, Controller에서 응답값을 반환할 때 MessageConverter에서 마스킹을 적용하도록 변경하였습니다.
변경된 방식은 Controller에서 응답값을 반환할 때, 응답값을 처리하는 MessageConverter에서 Masking 처리합니다.
예시 DTO:
public class SampleResponse {
private Long id;
@MaskString(type = MaskingType.NAME_EN)
private String name;
private String description;
}사용 방법은 기존과 동일하며, @MaskString 애노테이션을 그대로 사용합니다.
MaskingUtils 기능은 기본적으로 common 프로젝트에 있는 MaskingUtils 클래스를 사용합니다.
Apibo처럼 기본 MaskingUtils를 변경해서 적용해야 할 경우, 아래 절차를 따르세요.
커스텀 MaskingUtils 클래스 생성
예:
위 예시처럼 공통 MaskingUtils 클래스를 상속받고, 마스킹을 실행하는 함수인 getValue를 오버라이딩하여 재정의합니다.
설정값에 커스텀 MaskingUtils bean name 지정
application.yml 예:
```yaml masking: utils: bean: boApiMaskingUtils ``` application.yml 파일에서 `masking.utils.bean` 설정에 해당 bean name을 정의합니다.
마지막 업데이트
@Component
public class BoApiMaskingUtils extends MaskingUtils {
public String getValue(String value, MaskingType type) {
return getValue(value, type, true);
}
}