簡體   English   中英

為什么Tomcat會出現403錯誤?

[英]Why Tomcat gives 403 error?

我在下面配置了我的 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 頁面, webapps/dupload/task.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 並使用管理員用戶帳戶登錄。 為什么這仍然不起作用?

更新:

webapp 的 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-interface 獲得訪問權限。 所以它應該看起來像:

<user username="viewer" password="viewer" roles="admin,tomcat,manager-gui"/>

您的 web.xml 表示需要角色“查看者”。 您以沒有該角色的管理員用戶身份登錄。

更新您的 tomcat-users.xml 如下:

<user username="admin" password="admin" roles="manager-gui, viewer"/>;

奇怪的是,您的“查看者”用戶也沒有查看者角色,但這不是導致問題的原因(如果您以管理員身份登錄)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM