Tomcat 7管理器应用程序访问被拒绝

vmjh9lq9  于 2023-01-05  发布在  其他
关注(0)|答案(3)|浏览(220)

当我第一次进入管理器应用程序http://localhost:8080/manager/html时,有一个浏览器提示登录窗口要求输入用户名和密码,通过输入错误的用户名和密码,页面返回403(访问被拒绝)。
所以我在谷歌上搜索了一下,设置如下:

<role rolename="manager-gui" />
<user username="admin" password="tomcat" roles="manager-gui"/>
<!-- these 2 lines was there before my editing -->
<user password="tom" roles="manager-script,admin" username="tom"/>
<user password="tomcat" roles="manager-script,admin" username="tomcat"/>

重新启动tomcat后,这次管理器直接显示403页面,没有询问用户名和密码,所以我有点困惑,这个管理器使用的是什么身份验证?如何登录管理器?

sgtfey8w

sgtfey8w1#

这与浏览器及其保留活动登录的策略有关。对于Firefox,您可以转到“工具"-〉”清除最近的历史记录..."并清除“活动登录”。之后刷新管理器应用程序将弹出您要求的提示。
干杯,β

mw3dktmi

mw3dktmi2#

旧的,但这发生在我身上,我挣扎,直到我发现问题.如问题中所述,我有正确配置的tomcat-users.xml,但凭据从来没有问过浏览器.
在新安装的Tomcat 7中,manager/META-INF/context.xml包含一个过滤器,只允许本地主机。

<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" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

添加网络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|192\.168\.0\.\d+" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

在之前版本中,对该阀进行了注解。

dxxyhpgq

dxxyhpgq3#

缺省情况下,Tomcat 7使用
锁定领域
:这意味着用户名在5次登录失败后被锁定。

溶液

向tomcat-users.xml添加另一个用户。

<?xml version='1.0' encoding='cp1252'?>
<tomcat-users>
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
</tomcat-users>

我建议保持XML文件的整洁,就像上面的例子一样。希望它能有所帮助。

相关问题