亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以配置 Zuul 路由以匹配通配符?

是否可以配置 Zuul 路由以匹配通配符?

慕哥9229398 2022-06-15 15:41:11
我正在構建一個多租戶應用程序,其中租戶名稱包含在每個 url 中。例如,檢索租戶“Test”的所有當前用戶的路由如下所示/ui/api/Test/users:我目前正在處理的應用程序部分是一個客戶端,它將它支持的任何其他應用程序的請求轉發到我的數據庫服務,允許客戶端充當中間人。您可能會看到這是怎么回事。我正在使用 Zuul 轉發我的路由,但并非所有路由都應該以這種方式轉發。/ui/api/有時,前端會發送以非數據庫請求開頭的請求。假設其中一個看起來像這樣:/ui/api/Test/Foo. 我希望能夠以這樣一種方式配置我的 Zuul 路由,即我可以轉發任何適合該模式的 url /ui/api/*/users(其中 * 是任何字符串)而不轉發任何其他的。我當然嘗試過簡單地使用/ui/api/*/users,但這不會匹配任何路線。我沒有嘗試過,但我認為它只是將 * 解釋為 url 的實際部分。我目前的解決方法是匹配/ui/api/**然后添加**/Foo到zuul.ignoredPatterns。這可行,但不是最佳的,因為我需要不轉發的任何新端點都需要在此處添加。由于客戶端用于各種項目,因此轉發的路由不會更改,但不應該更改的路由會更改。這不是每個項目都可以配置的,因此不是一個可行的解決方案。這就是我的 application.properties 的相關部分的樣子:zuul.ignoredPatterns = /**/login,/**/executeJobUrl,/**/createExecuteJobUrlzuul.routes.user-manager.path = /ui/api/**zuul.routes.user-manager.url = http://localhost:0/eis-user-manager/ui/apizuul.routes.user-manager.stripPrefix = true
查看完整描述

2 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

工作解決方案是**在模式中使用。所以它會是

 /ui/api/**/users

我從這里得到了這個想法。還要感謝 Alex Eggers 的測試并建議做出答案。


查看完整回答
反對 回復 2022-06-15
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

我有一些使用部分通配符的路線,作為與您描述的類似問題的解決方案。我找不到像/api/**/v1.1/user**工作一樣的道路,但/api/*admin/v1.1/user**工作正常。我得出的結論是,單獨的通配符太貪婪了......


唯一的問題是您需要將服務命名為“somecompanyadmin”、“msadmin”和“someothercompanyadmin”,而不是“somecompany”、“ms”和“someothercompany”……


這是適用于我的情況的示例配置:


zuul:

  routes:

    mock:

      path: /v1.1/**

      url: https://myserver:6154/v1.1

    users:

      path: /api/*admin/v1.1/user**

      serviceId: user_server

      stripPrefix: true

    permission:

      path: /api/*admin/v1.1/permission/**

      serviceId: permission_server

      stripPrefix: true


查看完整回答
反對 回復 2022-06-15
  • 2 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號