-1

我们在tomcat的webapps文件夹中部署了两个war文件,比如说public.war和private.war

我们只想为 private.war 设置 HTTP 基本身份验证(不是为所有部署的 war 文件),但似乎我们必须在爆炸的 /webapps/private/WEB-INF/web.xml 中配置它(或修改战争本身),这是我们想要避免的。

这样做的原因是我们正在从第 3 方来源检索 private.war,如果有人将其更新到最新版本,我们对 web.xml 的更改将被覆盖(对吗?)。

有没有一种方法可以在 Tomcat 中为一个特定的上下文路径启用基本身份验证,比如 conf/web.xml 或其他文件?

我们特别希望避免修改已部署(或已分解)的 war 文件。

4

2 回答 2

2

有没有办法只为一个特定的上下文路径在 Tomcat 中启用基本身份验证

确实为此,您需要修改应用程序配置(实际上是 war 文件或部署的文件)。

我们特别希望避免修改已部署(或已分解)的 war 文件

如果你有一个,我建议你在反向代理(apache httpd,nginx)上强制执行基本身份验证

于 2018-03-23T16:26:51.357 回答
-1

您可以在 $CATALINA_HOME/conf/context.xml 中添加一个配置,并在其中添加一个环境,然后在您的源代码或 war 文件中的配置文件中使用它作为 ref bean,例如:

上下文.xml:

<Context>
  ...
  <Environment name="username" value="admin"
      type="java.lang.String"/>
  ...
</Context>

security.xml(在您的战争文件中):

<bean>
id="AuthenticationService"
    class="com.core.auth.AuthenticationService">
    <property name="username" >
        <ref bean="username"/>
    </property>

</bean>
于 2018-03-23T15:21:17.010 回答