Tomcat7允许访问多个主机配置的管理器应用程序

时间:2017-12-14 10:15:56

标签: tomcat tomcat7 tomcat-manager

我已经通过在server.xml文件中为每个域添加Host条目,将Tomcat7(7.0.82)配置为托管多个主机名的Web应用程序。这按预期工作。以下是server.xml中的引擎定义:

    <Engine defaultHost="localhost" name="Catalina">
        <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
        </Realm>

        <Host appBase="webapps" autoDeploy="true" 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." suffix=".txt"/>
        </Host>

        <Host appBase="xxx-webapps" autoDeploy="true" name="xxx.domain.com" unpackWARs="true">
        </Host>

        <Host appBase="yyy-webapps" autoDeploy="true" name="yyy.domain.com" unpackWARs="true">
        </Host>
    </Engine>

现在我想为每个主机启用对经理应用的访问权限。

将用户添加到conf /.

中的tomcat-users.xml文件中

我为每个主机创建了一个manager.xml文件,并将这些文件放在/ conf中相应的域名子文件夹中,例如: \的conf \卡塔利娜\ yyy.domain.com \ manager.xml。 manager.xml文件的内容相同,仅包含以下信息:

<?xml version='1.0' encoding='utf-8'?>
<Context docBase="${catalina.home}/webapps/manager" 
    antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" />
</Context>

管理员应用程序在通过localhost/manager直接访问时可以正常工作,但我会立即获得yyy.domain.com/manager上备用主机的默认403拒绝访问权限;没有显示登录提示。

我是否要从manager.xml文件中引用tomcat-users.xml文件,还是应该以某种方式在manager.xml文件中创建UserDatabase中定义的Engine的引用?

1 个答案:

答案 0 :(得分:0)

只需删除“Valve”标签即可。它只允许“localhost”访问(127.0.0.1)。