1
我想使用Spring Cloud Zuul作爲api /身份驗證網關。我已成功實現了zuul後面的服務的持票人令牌授權,並且我成功將Zuul轉發給我的表單登錄並路由回到我的應用程序,但我無法讓Zuul將不記名令牌傳遞給服務。春雲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應該自動發送持票人標記值。我錯過了什麼?