Ich habe Tomcat7 (7.0.82) zum Hosten von Web-Apps für mehrere Hostnamen konfiguriert, indem Sie für jede Domäne in der Datei server.xml einen Hosteintrag hinzufügen. Dies funktioniert wie erwartet. Unten ist meine Engine-Definition in server.xml:Tomcat7 ermöglicht den Zugriff auf Manager-App für mehrere Hosts
<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 "%r" %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>
Jetzt möchte ich den Zugriff auf die Manager-App für jeden Host aktivieren.
Ein Benutzer wird der Datei tomcat-users.xml in conf/hinzugefügt.
Ich habe eine manager.xml-Datei für jeden Host erstellt und diese Dateien in den entsprechenden Domänen-Unterordner in/conf, z. \ conf \ Catalina \ yyy.domain.com \ manager.xml. Der Inhalt der manager.xml Dateien sind identisch und enthält nur diese Informationen:
<?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>
Der Manager App funktioniert, wenn es direkt über localhost/manager
zugreifen, aber ich habe die Access-Standard 403 Denied sofort für die alternativen Hosts auf yyy.domain.com/manager
; Es wird keine Anmeldeaufforderung angezeigt.
Muss ich auf die Datei tomcat-users.xml aus der Datei manager.xml verweisen, oder sollte ich irgendwie einen Verweis in den manager.xml-Dateien auf UserDatabase
erstellen, die in Engine
definiert sind?