配置基本身份验证而不修改.war

时间:2018-03-23 15:15:47

标签: java security tomcat jolokia

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

我们只为private.war设置HTTP基本身份验证(不适用于所有已部署的war文件),但似乎我们必须在explosion / webapps / private / WEB-INF / web中配置它。我们希望避免使用xml(或修改war itseld)。

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

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

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

2 个答案:

答案 0 :(得分:2)

  

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

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

  

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

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

答案 1 :(得分:-1)

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

context.xml中:

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

security.xml(在你的war文件中):

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

</bean>