【发布时间】:2021-08-10 23:38:15
【问题描述】:
如何配置应用程序以使每个客户端都有其上下文?
例子:
- 主要
- client1.domain.com --> domain.com/client1
- client2.domain.com --> domain.com/client2
- ....
- 登录
- client1.domain.com/Login --> domain.com/client1/Login
- client2.domain.com/Login --> domain.com/client2/Login
- ....
我目前的应用使用子域的配置是因为springboot本身识别它是在不同的上下文中,但是通过路径看不懂怎么做
【问题讨论】:
-
不确定您是否正在寻找应该返回客户端 1 数据的 domain.com/client/1 之类的路径。您可以查看此链接:baeldung.com/spring-boot-start 并搜索以下方法:@GetMapping("/{id}") public Book findOne(@PathVariable Long id) { return bookRepository.findById(id) .orElseThrow(BookNotFoundException::new) ; }
-
@Rakmo 感谢您的回复,我实际上需要应用程序根据 uri 的第一个子目录为每个租户提供一个独立的上下文。例如:mydomain.com/tenant1/* mydomain.com/tenant2/* 其中 * 将是所有消费 url
-
这不是开箱即用的。如果每个客户端的 URL 结构都相同,则可以使用自定义参数解析器做一些巧妙的事情。
-
有什么理由不能在 DNS 记录中执行此操作?或者使用 LoadBalancer 路由到服务器上的正确端点?
-
@YashDigantJoshi 感谢您的回答。目前系统开发的和你描述的完全一样,但是这种修改思路有降低成本的原则
标签: java spring-boot spring-security