후발대 과제
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@AuthenticationPrincipal
public @interface CustomMemberInfo {
}
후발대 과제
1번
@GetMapping("")
public ResponseEntity<MemberInfo> getMemberInfo(@AuthenticationPrincipal AuthorizedMember authorizedMember) {
if (authorizedMember == null) {
return ResponseEntity.badRequest().build();
}
// TODO : authorizedMember.getMember()와 같은 중복 개념 접근 개선하기
Member member = authorizedMember.getMember();
return ResponseEntity.ok(new MemberInfo(member.getEmail(), member.getName(), member.getRoles()));
}
2번
@GetMapping("")
public ResponseEntity<MemberInfo> getMemberInfo(@CustomMemberInfo Member member) {
if (member == null) {
return ResponseEntity.badRequest().build();
}
// TODO : authorizedMember.getMember()와 같은 중복 개념 접근 개선하기
// Member member = authorizedMember.getMember();
return ResponseEntity.ok(new MemberInfo(member.getEmail(), member.getName(), member.getRoles()));
}