@UserInfo 사용법 - 2-7-team/user-service GitHub Wiki
@Configuration
@RequiredArgsConstructor
public class UserInfoWebConfig implements WebMvcConfigurer {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(new UserInfoArgumentResolver());
}
}
위와 같이 사용하려는 서비스에서 config 추가해야 합니다.
@PostMapping()
public ResponseEntity<Void> createReservation(@RequestBody CreateReservationRequest request,
@UserInfo UserDetails user) {
log.info("userId {} ", user.getUserId());
log.info("userRole {} ", user.getRole());
~~~~~~
}
@UserInfo UserDetails로 받아야 사용가능합니다. user.getUserId or user.getRole 로 사용 가능합니다.
POSTMAN등으로 로컬에서 테스트 수행시에 다음과 같이 헤더에 값 삽입 시 테스트 가능합니다.
KEY
X-User-Name
X-User-Role
X-User-Name은 username이 아닌 id가 들어갑니다. ( user-service 에서도 수정 필요 )
추후 X-User-Id 로 변경 될 수 있음 (gateway도 수정 필요)
예시)
현재 User-Service에서 선언된 권한 목록
public enum UserRole {
ROLE_MASTER,
ROLE_HOSPITAL,
ROLE_USER
}