• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

커스텀 어노테이션 의 `커스텀 value` 설정방법에 관한 질문입니다.

22.03.19 17:45 작성 23.02.07 22:11 수정 조회수 186

0

강사님 안녕하세요^^
커스텀 어노테이션은 어노테이션을 묶는 기능 외, 사용자정의 값을 지정할 수는 없을까요?

질문:
위와 같이 작성된 어노테이션에서 (username = "mockUser", roles = "USER") 이 부분을 아래처럼 사용하는 곳에서 설정할 방법이 없을까요?

@Test
@WithUser(username = "mockUser", roles = "USER")
void adminPageToUnauthorizedUser() throws Exception {
     ...
}

( S.Security 가 제공하는 @WithMockUser 자체(관련 프록시)의 기능을 커스터마이징 해야 되는건가요?  The Java8 강의에서 `@ChickenContainer` 어노테이션 역시 묶는 형태로 사용되었지만, 질문하기 애매해서, 이곳에 딱 좋은 사례가 있어 여기다 남기게 되었구요, 있을법도 할텐데, 아직 방법을 모르겠습니다 )

혹시 방법이 있을까요? 읽어주셔서 감사합니다.

 

답변 1

답변을 작성해보세요.

1

흠... 그건 어려울것 같은데요. 애노테이션에 상속이란 개념도 없고. 자기가 가진 프로퍼티 값을 자기 위에 선언되어 있는 애노테이션으로 전달할 방법도 없으니까요. 대신 프로퍼티를 설정하게 해놓고, 해당 애노테이션을 처리하는 곳에서 WithUser가 가지고 있는 프로퍼티를 우선적으로 사용하게 하면 가능할테니만 그건 어디까지나 애노테이션 프로세서가 그런 경우까지 고려한 경우에만 해당하겠네요.

 

Truestar님의 프로필

Truestar

질문자

2022.03.21

그렇군요! 세세한 답변 감사드립니다.