users true the same running privileged password only manager machine from false enable dominio context configurar application app antiresourcelocking allow tomcat

true - tomcat-users.xml tomcat 8



Acceda a la aplicaciĆ³n Tomcat Manager desde un host diferente (3)

He instalado tomcat 9 en un servidor remoto y, después de iniciarlo, lo http://host_name:port_num bien, puedo acceder a http://host_name:port_num y ver la página hola de tomcat. Pero cuando trato de abrir la aplicación de administrador para ver mis aplicaciones implementadas, se me niega el acceso 403, ya agrego roles en tomcat user xml de la siguiente manera:

<role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="admin"/> <user username="user" password="password" roles="admin,manager,manager-gui"/>

Los mensajes de error que vi es:

De manera predeterminada, solo se puede acceder al Host Manager desde un navegador que se ejecuta en la misma máquina que Tomcat. Si desea modificar esta restricción, deberá editar el archivo context.xml del Administrador de host.

¿Cómo debo cambiar el archivo context.xml y obtener acceso a la aplicación de administrador?


Cada aplicación web desplegada tiene un archivo context.xml que vive en

$CATALINA_BASE/conf/[enginename]/[hostname] (conf/Catalina/localhost by default)

y tiene el mismo nombre que la aplicación web ( manager.xml en este caso). Si no hay ningún archivo presente, se utilizan valores predeterminados.

Por lo tanto, debe crear un archivo conf/Catalina/localhost/manager.xml y especificar la regla que desea permitir el acceso remoto. Por ejemplo, el siguiente contenido de manager.xml permitirá el acceso desde todas las máquinas:

<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>

Tenga en cuenta que el atributo permitir del elemento Valve es una expresión regular que coincide con la dirección IP del host de conexión. Otras clases de Valve en cuenta otras reglas (por ejemplo, RemoteHostValve para nombres de host coincidentes).

Una vez que se hayan realizado los cambios anteriores, debería aparecer un cuadro de diálogo de autenticación al acceder a la URL del administrador. Si ingresa los detalles que ha proporcionado en tomcat-users.xml , debe tener acceso al Administrador.


Para Tomcat v8.5.4 y superior, el archivo <tomcat>/webapps/manager/META-INF/context.xml se ha ajustado:

<Context antiResourceLocking="false" privileged="true" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127/./d+/./d+/./d+|::1|0:0:0:0:0:0:0:1" /> </Context>

Cambie este archivo para comentar la Valve :

<Context antiResourceLocking="false" privileged="true" > <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127/./d+/./d+/./d+|::1|0:0:0:0:0:0:0:1" /> --> </Context>

Después de eso, actualice su navegador (no es necesario reiniciar Tomcat), puede ver la página del administrador.


Following two configuration is working for me. 1 .tomcat-users.xml details -------------------------------- <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="tomcat"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="admin" password="admin" roles="admin-gui"/> <user username="adminscript" password="adminscrip" roles="admin-script"/> <user username="tomcat" password="s3cret" roles="manager-gui"/> <user username="status" password="status" roles="manager-status"/> <user username="both" password="both" roles="manager-gui,manager-status"/> <user username="script" password="script" roles="manager-script"/> <user username="jmx" password="jmx" roles="manager-jmx"/> 2. context.xml of <tomcat>/webapps/manager/META-INF/context.xml and <tomcat>/webapps/host-manager/META-INF/context.xml ------------------------------------------------------------------------ <Context antiResourceLocking="false" privileged="true" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow=".*" /> <Manager sessionAttributeValueClassNameFilter="java/.lang/.(?:Boolean|Integer|Long|Number|String)|org/.apache/.catalina/.filters/.CsrfPreventionFilter/$LruCache(?:/$1)?|java/.util/.(?:Linked)?HashMap"/>