Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 使用Jenkins在远程Tomcat8上部署时,不允许您提供的用户名使用基于文本的Tomcat管理器(错误403)_Maven_Tomcat_Jenkins_Web Deployment - Fatal编程技术网

Maven 使用Jenkins在远程Tomcat8上部署时,不允许您提供的用户名使用基于文本的Tomcat管理器(错误403)

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 deploy to container插件在远程Tomcat(远程机器)上部署WAR。 我在tomcat-users.xml中完成了以下配置


这似乎是一个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"/>