我们正在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文件。
答案 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>