Я пытаюсь использовать Spring Cloud Zuul в качестве шлюза api/authentication. Я успешно выполнил авторизацию токена на предъявителя для моей службы за zuul, и я успешно перевел Zuul на мою регистрацию формы и перенаправил обратно в мое приложение, но я не могу заставить Zuul передать токен-носитель на службу.Spring Cloud Zuul не поддерживает токен доступа
конфигурацииМой Zuul выглядит следующим образом:
@EnableEurekaClient
@EnableZuulProxy
@SpringBootApplication
@RestController
public class Application { ... }
Моя конфигурация службы выглядит следующим образом:
@Profile("oauth")
@Configuration
@EnableResourceServer
@EnableWebSecurity
public static class InternalApiGatewayConfig extends ResourceServerConfigurerAdapter {
Когда мой Угловая приложение пытается получить доступ к моей службы через Zuul, я получаю
{"error":"unauthorized","error_description":"Full authentication is required to access this resource"}
Мне удалось обойти эту проблему, поставив следующий код в ZuulFilter, но это не кажется правильным:
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails)authentication.getDetails();
String tokenValue = details.getTokenValue();
ctx.addZuulRequestHeader("Authorization", "bearer " + tokenValue);
Я понимаю, что Zuul должен автоматически отправлять значение токена-носителя. Что мне не хватает?