我们在tomcat的webapps文件夹中部署了两个war文件,比如public.war和private.war
我们只想为 private.war 设置 HTTP 基本身份验证(不是所有已部署的战争文件(,但似乎我们必须在分解的/webapps/private/WEB-INF/web.xml 中配置它(或修改 war itseld(,我们希望避免这种情况。
这样做的原因是我们正在从第三方来源检索private.war,例如,如果有人将其更新到最新版本,我们对web.xml所做的更改将被覆盖(对吗?
有没有办法在 Tomcat 中仅为一个特定的上下文路径启用基本身份验证 - 比如 conf/web.xml 或其他文件?
我们特别希望避免修改已部署(或分解(的战争文件。
有没有办法在Tomcat中仅为一个特定的上下文路径启用基本身份验证
实际上,为此,您需要修改应用程序配置(实际上是 WAR 文件或已部署的文件(。
我们特别希望避免修改已部署(或爆炸(的战争文件
我建议您在反向代理(apache httpd,nginx(上强制执行基本身份验证(如果您有的话(
您可以在 $CATALINA_HOME/conf/context 中添加一个配置.xml并在其中添加一个环境,并在 war 文件中将其用作 ref bean,例如:
上下文.xml:
<Context>
...
<Environment name="username" value="admin"
type="java.lang.String"/>
...
</Context>
安全性.xml(在您的战争文件中(:
<bean>
id="AuthenticationService"
class="com.core.auth.AuthenticationService">
<property name="username" >
<ref bean="username"/>
</property>
</bean>