为什么Ant在部署时返回403?

我正在尝试部署到Tomcat 7中的war文件。它给了我以下错误。

deploy: [echo] Deploying on Tomcat. BUILD FAILED C:\Users\coder\workspace\projectName\build.xml:84: java.io.IOException: Server returned HTTP response code: 403 for URL: http://localhost:8090/manager/deploy?path=%2FprojectName 

这是我的构建文件

                                                             

manager.username和manager.password中提到的帐户必须是“manager-script”(或“admin-script”,如果不起作用)。

似乎“经理”和“管理员”角色在Tomcat 7中更改为“manager-gui”,“admin-gui”,“manager-script”(用于文本连接),“admin-script”(用于文本连接) 。

我从以下错误页面找到了4个与经理相关的角色:

403访问被拒绝

您无权查看此页面。

如果您已将Manager应用程序配置为允许访问,并且您已使用浏览器后退按钮,使用已保存的书签或类似标记,那么您可能已触发已为HTML启用的跨站点请求伪造(CSRF)保护Manager应用程序的界面。 您需要返回主Manager页面重置此保护。 返回此页面后,您将能够继续正常使用Manager应用程序的HTML界面。 如果您继续看到此拒绝访问消息,请检查您是否具有访问此应用程序所需的权限。

如果您尚未更改任何配置文件,请检查安装中的文件conf / tomcat-users.xml。 该文件必须包含允许您使用此Web应用程序的凭据。

例如,要将manager-gui角色添加到名为tomcat且密码为s3cret的用户,请将以下内容添加到上面列出的配置文件中。

请注意,对于Tomcat 7以上,使用管理器应用程序所需的角色已从单个管理器角色更改为以下四个角色。 您需要分配您希望访问的function所需的角色。

manager-gui – 允许访问HTML GUI和状态页面

manager-script – 允许访问文本界面和状态页面

manager-jmx – 允许访问JMX代理和状态页面

manager-status – 仅允许访问状态页面

HTML接口受CSRF保护,但文本和JMX接口不受保护。 为了保持CSRF保护:

具有manager-gui角色的用户不应被授予manager-script或manager-jmx角色。 如果通过浏览器访问text或jmx接口(例如,用于测试,因为这些接口用于工具而不是人类),则必须在之后关闭浏览器以终止会话。 有关更多信息,请参阅Manager App HOW-TO。

您应该使用的基本URL应该是: http://localhost:8090/manager/text

您收到拒绝访问错误。

这是可能的,因为您的用户名或密码不正确或者您没有正确添加角色。

这是Tomcat文档中的一个模糊 –

Apache Tomcat 6.0领域配置HOW-TO写道:如果您希望使用Manager应用程序在正在运行的Tomcat安装中部署和取消部署应用程序,则必须将“manager”角色添加到所选Realm实现中的至少一个用户名。 这是因为管理器Web应用程序本身使用安全约束,该约束要求角色“manager”访问该应用程序中的任何请求URI。

希望有所帮助。

我遇到了与Tomcat 6相同的问题,但上述任何解决方案都无法帮助我。 所以我通过在tomcat-users中向用户添加额外角色(’manager’)来修复它。

  

我最近遇到了这个错误,这些方法都没有帮助我。

解决方案是将角色显式写入tomcat-users.xml:

      

角色admin-guiadmin-script不需要运行脚本,我需要他们使用此用户在web gui中管理tomcat。