Maven 使用Jenkins在远程Tomcat8上部署时,不允许您提供的用户名使用基于文本的Tomcat管理器(错误403)
我试图使用Jenkins deploy to container插件在远程Tomcat(远程机器)上部署WAR。 我在tomcat-users.xml中完成了以下配置Maven 使用Jenkins在远程Tomcat8上部署时,不允许您提供的用户名使用基于文本的Tomcat管理器(错误403),maven,tomcat,jenkins,web-deployment,Maven,Tomcat,Jenkins,Web Deployment,我试图使用Jenkins deploy to container插件在远程Tomcat(远程机器)上部署WAR。 我在tomcat-users.xml中完成了以下配置 这似乎是一个Jenkins bug,但我通过在Tomcat中设置以下配置解决了这个问题: 编辑文件/webapps/manager/META-INF/context.xml: 以前的: 在通过容器插件将工件部署到tomcat和jenkins时,我遇到了同样的问题, 解决方案:-我在用户角色中添加了管理器脚本和管理器gui,并提
这似乎是一个Jenkins bug,但我通过在Tomcat中设置以下配置解决了这个问题:
编辑文件/webapps/manager/META-INF/context.xml:
以前的:
在通过容器插件将工件部署到tomcat和jenkins时,我遇到了同样的问题,
解决方案:-我在用户角色中添加了管理器脚本和管理器gui,并提供对webapps/*目录的完全访问。它帮助我成功地部署工件,并能够使用manager应用程序查看工件 如果什么都不起作用,只需在tomcat-users.xml文件中创建另一个用户,并分配magnager脚本角色,然后将此用户凭据设置为jenkins 在tomcat-users.xml文件中
<tomcat-users>
<user username="deployuser" password="deployuser" roles="manager-script" />
<user username="admin" password="admin" roles="manager-gui" />
</tomcat-users>
在Tomcat 9中,您不需要添加任何经理XXX角色。您所要做的就是添加用户并分配manager gui(用于gui访问)和manager脚本(用于Jenkins部署之类的访问)。 此外,请确保编辑文件/webapps/manager/META-INF/context.xml,以注释掉阀门或为允许属性定义适当的注册表项步骤1: 我们需要更新:\webapps\manager\META-INF\context.xml。Bcs它只允许本地主机。如果您知道特定的主机名或IP,可以添加
<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>
步骤2:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui, manager-script"/>
部署成功。您只需将jenkins IP地址添加到阀门 您需要更新:/webapps/manager/META-INF/context.xml。因为它只允许本地主机。如果您知道特定的主机名或IP,可以将其添加到IP地址中,以替换XXX.XXX.XXX.XXX。 保持安全是非常重要的
<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|XXX.XXX.XXX.XXX" />
</Context>
我的OS:Debain 10
我通过编辑文件/opt/tomcat/conf/tomcat users.xml
并添加管理器脚本
角色来解决这个问题
<role rolename="admin-gui,manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>
<user username="admin" password="password" roles="admin-gui,manager-gui,manager-script"/>
可能输入的用户在远程计算机上没有读/写权限。我检查了访问权限。用户有访问权限。Jenkins没有错误。默认情况下,Tomcat不允许从外部机器(即本地主机以外的机器)访问管理器。这只是禁用了该限制。感谢您的帮助。我得到jenkins host>curl-u deployer为用户“deployer”输入主机密码:密码“OK”-列出的虚拟主机应用程序[localhost]/:running:0:ROOT/manager:running:0:manager,但“您提供的用户名不允许使用基于文本的Tomcat管理器(错误403)”通过jenkins部署插件使用相同的用户名。怎样才能通过jenkins获得200 OK?选中:当密码或用户名不正确时,我从curl获得401而不是403。在我的情况下,问题是我没有在Tomcat URL字段中提供端口号。而不是我已经把它工作得很好。谢谢,这是一个简单的解决方案。
<role rolename="admin-gui,manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>
<user username="admin" password="password" roles="admin-gui,manager-gui,manager-script"/>