@UserInfo 사용법 - 2-7-team/user-service GitHub Wiki

버전 : 0.2.2-SNAPSHOT 부터 가능합니다.

Config 설정 필요

@Configuration
@RequiredArgsConstructor
public class UserInfoWebConfig implements WebMvcConfigurer {

	@Override
	public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
		resolvers.add(new UserInfoArgumentResolver());
	}
}

위와 같이 사용하려는 서비스에서 config 추가해야 합니다.

Controller에서 요청 받기

	@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도 수정 필요)

예시)

postman 테스트

현재 User-Service에서 선언된 권한 목록

public enum UserRole {
    ROLE_MASTER,
    ROLE_HOSPITAL,
    ROLE_USER
}
⚠️ **GitHub.com Fallback** ⚠️