gpt4 book ai didi

tomcat - 使 tomcat 成为 SaaS 的 Multi-Tenancy

转载 作者:行者123 更新时间:2023-11-28 22:09:45 24 4
gpt4 key购买 nike

我们的 tomcat 服务器提供单个 war 文件,该文件由 3 个租户的 3 个不同的相同数据库提供服务。

计划是使用一个 JNDI 数据源(3 个数据源)并使用一个抽象工厂为该租户实例化必要的子类。

想要使用容器管理的身份验证。

我们想使用内置的 Java 安全注释,如 @RolesAllowed 等。Auth 是通过 HTTP Basic Auth。这对一个租户(默认配置)非常有用。但是我想不出一个好的解决方案,让 tomcat 可以根据上下文 (https://server/resources/CLIENT1/Blah) 识别租户,然后为 CLIENT1/2/3 等查找合适的 JNDI。

想法或建议?

最佳答案

通过创建虚拟主机解决

创建了两个虚拟主机本地主机本地主机2

创建了两个领域(用于测试的 UserDatabase 领域)用户数据库用户数据库2

两台主机都指向同一个文档根目录

调用 http://localhost/service , 领域 UserDatabase 被使用并且打电话http://localhost2/service , 使用领域 UserDatabase2

感谢 Tomcat 文档..

  <Service name="Catalina">
<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." resolveHosts="false" suffix=".txt"/>
</Host>
<Host appBase="webapps" autoDeploy="false" name="localhost2" unpackWARs="true">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase2"/>
</Host>
</Engine>

关于tomcat - 使 tomcat 成为 SaaS 的 Multi-Tenancy ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7606137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com