我想在简单的Spring Boot应用程序(CommandLineRunner)中使用@FeignClient来调用微服务端点。如何提供OAuth2Authentication来调用受保护的端点,例如helloUser()
?
@FeignClient(name = "sampleService", contextId = "greetingService")
public interface GreetingService {
@GetMapping("/hello-anonymous")
String helloAnonymous();
@GetMapping("/hello-user")
@Secured({ Role.USER })
String helloUser();
@GetMapping("/hello-admin")
@Secured({ Role.ADMIN })
String helloAdmin();
}
答案 0 :(得分:1)
您可以使用伪装RequestInterceptor将auth标头传递到下游:
public class FeignRequestInterceptor implements RequestInterceptor {
@Override
public final void apply(RequestTemplate template) {
template.header("Authorization", "foo token");
}
}
这样,所有伪装呼叫都将配备一个auth标头。