2017-07-22 75 views
1

我想用oAuth實現替換Spring Cloud Config Server的基本認證。現在讓我們單獨離開Config Server,並專注於Config Client的更改。顯然,我不想爲整個事情編寫自己的實現,而是在標準的Config Client上執行自己的邏輯和回退。另外,我必須將我的更改打包到庫中,因爲我將在多個微服務中使用它。什麼是擴展Spring Cloud Config Client的正確方法?

長話短說我想實現以下內容:

1a。創建將包含Spring Cloud Config Client作爲依賴關係的自定義Starter。它是否可行或必要?

1b。使用Spring Cloud Config Client之前將執行的自定義邏輯創建自定義Starter。在這種情況下,每個微服務都會將Spring Cloud Config Client和自定義Starter作爲依賴關係。我如何管理執行順序並將自定義邏輯結果注入Config Client?

2.引入新的引導設置。例如spring.cloud.config.custom.username和spring.cloud.config.custom.password(可選)。

3.引入自定義Starter的自定義註釋。例如@enableCustomConfigClient(可選)。

我開始構建定製入門與/resources/META-INF/spring.factories下面的代碼:

# Bootstrap components 
org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 
com.example.greeter.config.ConfigClientBootstrapConfiguration 

但這碼輪廓後調用設置,而不是像第一個客戶端配置做的事情。

任何建議,尤其是代碼示例表示讚賞。謝謝!

+0

您將需要按照正確的順序 – spencergibb

+0

@spencergibb感謝。你能否詳細說明一下?也許有任何代碼示例? 1b是正確的嗎? –

+0

再次感謝斯賓塞。我想我明白了。值得注意的一件事是,LOWEST_PRECEDENCE將首先執行,但不會最後執行:@Order(Ordered.LOWEST_PRECEDENCE)。我稍後會發布更多詳情以供將來參考。以防萬一有人會有同樣的問題。 –

回答

1

發帖的方式,我選擇以供將來參考。

  1. 創建將在Spring Cloud Config Client之上/之前執行的新包。這裏有兩個主要特點:

    • 創建文件的src /主/資源/ META-INF/spring.factories與org.springframework.cloud.bootstrap.BootstrapConfiguration = {} YOUR_CLASS

    • 在{ YOUR_CLASS}應用自定義邏輯。不要忘記使用@ org.springframework.core.annotation.Order({} YOUR_PRECEDENCE)和事實Ordered.LOWEST_PRECEDENCE將被執行第一

  2. 修建從前面的步驟罐子並將其包含到您的項目(如本地文件或通過artifactory的)

  3. 添加自定義邏輯春雲配置服務器,以便它可以使用JWT。

工作例子是在這裏:https://github.com/ka4ok85/spring-cloud-config-client-jwt

相關問題