我在下面配置我的 tomcat-users.xml:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>
我在
webapps/dupload/task.html
页面下放置了一个 html 页面,该页面向 servlet 提交查询表单。 html代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>A Sample Form Using POST</TITLE>
</HEAD>
<BODY BGCOLOR="#FDF5E6">
<H2 ALIGN="CENTER">SimpleTaskQuery</H2>
<FORM ACTION="http://10.5.20.78:8080/mps4/ui/SimpleTaskQueryServlet"
METHOD="POST">
<CENTER>
Task Id:
<INPUT TYPE="TEXT" NAME="id" VALUE="111"><BR>
<INPUT TYPE="SUBMIT">
</CENTER>
</FORM>
</BODY>
</HTML>
但是当我提交表单时,tomcat给出以下错误:
HTTP Status 403 - Access to the requested resource has been denied
type Status report
message Access to the requested resource has been denied
description Access to the specified resource (Access to the requested resource has been denied) has been forbidden.
Apache Tomcat/7.0.26
我已经编辑了 tomcat-users.xml 并使用管理员用户帐户登录。为什么这仍然不起作用?
更新:
web应用程序的web.xml如下: web.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>HTMLManger and Manager command</web-resource-name>
<url-pattern>/ui/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>viewer</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Tomcat Manager Application</realm-name>
</login-config>
<security-role>
<description> </description>
<role-name>viewer</role-name>
</security-role>
我将 tomcat-users.xml 编辑为:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="viewer"/>
<role rolename="admin"/>
<role rolename="tomcat"/>
<user username="admin" password="admin" roles="manager-gui"/>
<user username="viewer" password="viewer" roles="admin,tomcat,manager-gui,manager-script"/>
</tomcat-users>
但还是不行。
你应该解决这个问题:
<user username="viewer" password="viewer" roles="admin,tomcat,manager-gui,manager-script"/>
该用户需要删除“manager-script”角色,以便他可以通过 html 界面获得访问权限。所以它应该看起来像:
<user username="viewer" password="viewer" roles="admin,tomcat,manager-gui"/>
您的 web.xml 表示需要“查看者”角色。您以管理员用户身份登录,但该用户没有该角色。
按如下方式更新您的 tomcat-users.xml:
<user username="admin" password="admin" roles="manager-gui, viewer"/>;
奇怪的是,您的“查看者”用户也没有查看者角色,但这不是导致问题的原因(如果您以管理员身份登录)