2016-09-21 7 views
4

Спасибо за ваше время. Чтобы сделать это просто, я создал пример службы, как показано ниже:Как использовать базовую аутентификацию Защищенный веб-сервис через feign-клиента

@RestController 
@RequestMapping("/") 
public class ComputeController { 

    @GetMapping("/add") 
    public int add(@RequestParam("left") int left, @RequestParam("right") int right) { 
     return left + right; 
    } 
} 

к защищенному этот адрес, я конфиг весна-безопасности, как это:

management.security.enabled=true 
security.user.name=admin 
security.user.password=admin 

Когда я запуска этой службы и доступ, как это :

GET /add?left=100&right=11 HTTP/1.1 
Authorization: ***** Hidden credentials ***** 
Host: localhost:7777 
Connection: close 

Все это нормально.

В другом узле я создал «сервис-коммюмер» netflix feign. Это интерфейс Java.

@FeignClient(name = "API-GATEWAY", path = "/compute-service", fallback = ComputeServiceCircuitBreaker.class) 
public interface ComputeServiceClient { 

    @RequestMapping(path = "/add", method = RequestMethod.GET) 
    public Integer add(@RequestParam("left") Integer left, @RequestParam("right") Integer right); 
} 

Но я НЕ знаю, как настроить заголовок запроса «Авторизация».

Любая идея? Еще раз спасибо.

+2

Я нашел ответ. http://stackoverflow.com/questions/35491581/basic-authentication-service-called-by-zuul?rq=1 –

ответ

8

вам необходимо создать класс конфигурации FeignClient, например

import feign.auth.BasicAuthRequestInterceptor; 

@Configuration 
public class FeignClientConfiguration { 
    @Bean 
    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() { 
     return new BasicAuthRequestInterceptor("admin", "admin"); 
    } 
} 

затем в вашем @FeignClient аннотацию использовать этот файл конфигурации

@FeignClient(name="service",configuration = FeignClientConfiguration.class) 

идти вперед и попробовать его, надеюсь, что это помогает

Благодаря Ryan Baxter для его исправления

+0

Это работало для меня –