W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
如果您的應(yīng)用程序還具有 Spring Cloud Gateway嵌入式反向代理,則可以要求它向下游轉(zhuǎn)發(fā)OAuth2訪問令牌到它正在代理的服務(wù)。因此,可以像下面這樣簡(jiǎn)單地增強(qiáng)上面的SSO應(yīng)用程序:
App.java。
@Autowired private TokenRelayGatewayFilterFactory filterFactory; @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("resource", r -> r.path("/resource") .filters(f -> f.filter(filterFactory.apply())) .uri("http://localhost:9000")) .build(); }
或這個(gè)
application.yaml。
spring: cloud: gateway: routes: - id: resource uri: http://localhost:9000 predicates: - Path=/resource filters: - TokenRelay=
它將(除了登錄用戶并獲取令牌之外)將身份驗(yàn)證令牌傳遞到服務(wù)下游(在這種情況下為/resource
)。
要為Spring Cloud網(wǎng)關(guān)啟用此功能,請(qǐng)?zhí)砑右韵乱蕾図?xiàng)
org.springframework.boot:spring-boot-starter-oauth2-client
org.springframework.cloud:spring-cloud-starter-security
它是如何工作的?該 濾波器 提取用于下游請(qǐng)求從當(dāng)前認(rèn)證的用戶的訪問令牌,并把它在請(qǐng)求報(bào)頭。
有關(guān)完整的工作示例,請(qǐng)參見此項(xiàng)目。
TokenRelayGatewayFilterFactory
使用的ReactiveOAuth2AuthorizedClientService
的默認(rèn)實(shí)現(xiàn)使用內(nèi)存中的數(shù)據(jù)存儲(chǔ)。如果需要更強(qiáng)大的解決方案,則需要提供自己的實(shí)現(xiàn)ReactiveOAuth2AuthorizedClientService
。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: