在Tomcat中,使用"manager-script"角色设置正确的用户名和密码

14
我知道这个问题已经 被问过很多次。但是我已经将我的用户设置为“manager-script”角色。
在尝试部署时,我一直收到以下消息:

部署错误:未获得访问Tomcat服务器的授权。请在服务器管理器中的Tomcat自定义程序中使用“manager-script”角色设置正确的用户名和密码。有关详细信息,请参见服务器日志。

enter image description here

我的D:\DEV\apache-tomcat-7.0.47\conf\tomcat-users.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
    <role rolename="manager-script"/>
    <user username="user" password="user" roles="manager-script"/>
</tomcat-users>

服务器在NetBeans中启动时没有错误,但是当我尝试部署时,它一直要求我提供具有"manager-script"凭据的信息。

enter image description here

我尝试过的方法:

  1. 删除所有其他Apache安装/目录。
  2. 重新启动。
  3. 仔细检查用户名和密码(user@user)。

我做错了什么?


1
简短回答 - 不知道。你的tomcat-users.xml看起来没问题。需要检查以下几点:1)Manager应用程序是否已部署?2)Manager使用的web.xml是否已更改(其中使用了manager-script)?3)使用JMX确认用户和角色是否被正确读取。4)在server.xml中是否更改了Realm? - Mark Thomas
@MarkThomas 请将您的评论作为答案输入,以便我可以给您信用。我按照您的步骤进行了操作...我认为管理器正在部署,但我无法进行身份验证。我决定将原始的web.xml和server.xml放回去,然后再试一次。它奏效了。所以某些被更改的东西让我困扰了。但是您的第2或第4步解决了问题,谢谢! - capdragon
已按要求完成翻译。提前致谢。 - Mark Thomas
1
https://dev59.com/iXPYa4cB1Zd3GeqPimsy - sampathlk
18个回答

15

同样的问题...通过添加以下内容解决:

<tomcat-users> <role rolename="manager-script"/> <user username="user" password="user" roles="manager-script"/> </tomcat-users>

将以上代码添加到 C:\Program files\apache-tomcat-7.0.47\conf\tomcat-users.xml 文件中,并记得以管理员身份运行NetBeans。


在密码和用户名中使用的“user”与netBeans中使用的相同凭据。通过打开服务,右键单击服务器,打开属性,您应该能够找到凭据。 - martinweberhansen

7

你好,以下是解决方案:

  1. 卸载NetBeans和Tomcat
  2. 删除缓存目录c:\users{youruser}.netbeans\
  3. 删除以下位置的NetBeans文件夹:C:\Users{youruser}\AppData\Roaming\netbeans
  4. 重新安装NetBeans和Tomcat
  5. 添加你的应用程序,它将会工作

已测试!! :D


6

简短回答 - 不知道。你的tomcat-users.xml看起来没问题。需要检查以下事项:

  1. Manager应用程序是否已部署?
  2. Manager使用的web.xml文件(其中使用manager-script)是否已更改?
  3. 使用JMX确认用户和角色是否被正确读取。
  4. 在server.xml中是否更改了Realm?

4

我也遇到了这个错误。我用以下方法解决了问题。我的这个错误是因为我登录计算机的用户没有权限访问C:盘,并且无法在.\conf\tomcat-users.xml中添加用户信息。因此,我将Tomcat文件夹复制到D:盘,并在我的NetBeans中删除并重新添加Tomcat服务器,然后再次启动服务器。现在一切正常。


3

如果您正在使用Tomcat 7.0.72并仍然遇到相同的问题,请按照以下步骤操作:

  1. 在tomcat-users.xml文件中设置具有manager-script权限的用户。
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
  <role rolename="manager-script"/>
  <user username="user" password="user" roles="manager-script"/>
</tomcat-users>
  1. 前往 C:\Users\[你的用户名]\AppData\Roaming\NetBeans\8.1 并编辑 "tomcat70.properties" 文件,如果没有以下内容,请添加:
tomcat.home=C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0
tomcat.url=http://localhost:8080
tomcat.username=manager
tomcat.password=tomcat
注意:将上述用户名和密码更改为您在c:\ Program Files \ apache ...中设置的tomcat-users.xml中的用户名和密码
3. 在Netbeans中删除服务器 4. 再次在Netbeans中添加Tomcat服务器,并将用户名和密码设置为tomcat-users.xml中的用户名和密码 5. 退出Tomcat服务器和Netbeans 6. 重新启动计算机并启动Tomcat服务器 7. 以管理员身份运行Netbeans。
这些步骤应该有效。

3

前往路径C:\Users\ur folder\AppData\Roaming\NetBeans\8.0.2\apache-tomcat-8.0.15.0_base\conf\tomcat-users.xml,并删除以下行:

<user password="admin" roles="manager-script,admin" username="admin"/> `

在Tomcat用户选项卡中进行操作。

netbeans中移除Apache Tomcat服务器,再次添加并设置catalina home为 C:\Program Files\Apache Software Foundation\Apache Tomcat 8.0.15\conf\Catalina\localhost\conf\Catalina\localhost,并创建新用户。这样问题便会得到解决。


请删除以下代码行:<user password="admin" roles="manager-script,admin" username="admin"/>。 - Noby Nirmal

2

记得按照指南操作后重新启动Tomcat,无需删除Netbean和Tomcat!以下是我的步骤:

1- 删除C:\Users{youruser}\AppData\Roaming\netbeans中的Netbeans文件夹

2- 设置tomcat_users.xml的权限

3- 编辑tomcat_user.xml

4- 重新启动Tomcat

它可以正常工作!


0

我添加了一个角色,然后在NetBeans中成功启动了Tomcat

请记住以管理员身份运行NetBeans

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

0
我遇到了同样的问题,并尝试了上面的所有答案,但都没有起作用。我找到的解决办法是选择了“使用系统代理设置”,然后将其更改为“无代理”(工具->选项->常规设置)。还将默认端口号从8080更改为8089。

0

我知道这个问题已经解决了,但我在Windows上遇到了类似的情况,我的“..\Apache\Tomcat..”在程序文件中,对我有用的是:

1.退出Netbeans(如果打开) 2.以管理员身份运行Netbeans

希望这能帮助到某些人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接