[英]Change UUID encoding to base-32 in spring-data-rest HAL _links
[英]How do I rewrite the app's base URL in spring-data-rest links?
我公司使用 API 網關,按如下方式轉換 URL,修改主機名和資源的基本路徑: https://apigateway.mycompany.com/myapp/foo -> https://myapp.mycompany.com/foo
在 Spring 數據 REST 中,應用程序想要使用https://myapp.mycompany.com/foo
生成鏈接。 我如何自定義應用程序以強制它為所有rel
屬性生成 API 網關鏈接?
我想更改鏈接的呈現方式,而不更改 myapp.mycompany.com 服務器上這些資源的實際路徑。 我查看了有關自定義rel
的文檔部分,但它似乎並未涵蓋此用例。
我應該怎么辦?
如果 Spring MVC 知道您的負載均衡器/代理,它可以自動重寫 Spring 數據 REST 和您自己的控制器(使用MvcUriComponentsBuilder
)中生成的 URL 以反映原始請求 URL,包括方案、端口等。
有一個名為ForwardedHeaderFilter
的內置 Servlet 過濾器,它通過檢查眾所周知的轉發標頭(例如X-Forwarded-For
)來為您處理此問題; 如果您使用的是 Spring Boot,您可以設置server.forward-headers-strategy = framework
來注冊一個,或者您可以使用@Import(ForwardedHeaderFilter.class)
創建一個 bean,然后 Boot 會將其應用於容器。 如果您在沒有引導的情況下使用 Spring MVC,請將此過濾器添加到您的 Servlet 配置中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.