Masking처리

다음은 Masking 처리에 대한 설명입니다.

변경점

  • Masking 처리를 DAO ↔︎ DBMS에서 MessageConverter (응답값 반환 처리 모듈)로 변경하였습니다.

  • 기존에 사용되었던 Mybatis 인터셉터 모듈(<plugin interceptor="com.x2bee.common.base.masking.MybatisMaskingInterceptor"/>)은 모두 삭제되었습니다.

  • 이전처럼 DAO단에서 변환을 처리하면 서비스 레이어에서 비즈니스 로직을 처리할 때 불편하므로, Controller에서 응답값을 반환할 때 MessageConverter에서 마스킹을 적용하도록 변경하였습니다.


설명

변경된 방식은 Controller에서 응답값을 반환할 때, 응답값을 처리하는 MessageConverter에서 Masking 처리합니다.

예시 DTO:

SampleResponse.java
public class SampleResponse {
    private Long id;

    @MaskString(type = MaskingType.NAME_EN)
    private String name;

    private String description;
}

사용 방법은 기존과 동일하며, @MaskString 애노테이션을 그대로 사용합니다.


커스텀 MaskingUtils 적용

MaskingUtils 기능은 기본적으로 common 프로젝트에 있는 MaskingUtils 클래스를 사용합니다.

Apibo처럼 기본 MaskingUtils를 변경해서 적용해야 할 경우, 아래 절차를 따르세요.

  1. 커스텀 MaskingUtils 클래스 생성

예:

위 예시처럼 공통 MaskingUtils 클래스를 상속받고, 마스킹을 실행하는 함수인 getValue를 오버라이딩하여 재정의합니다.

  1. 설정값에 커스텀 MaskingUtils bean name 지정

application.yml 예:

```yaml masking: utils: bean: boApiMaskingUtils ``` application.yml 파일에서 `masking.utils.bean` 설정에 해당 bean name을 정의합니다.

마지막 업데이트