我使用 eclipse 做了一个简单的表单验证 tomcat,其中需要名称和密码才能访问。但是,当我将用户名和密码放入文件 tomcat-users.xml 时,我收到错误 HTTP 状态 403,这意味着访问被拒绝。
我猜问题出在 web.xml 或 server.xml 中。我知道错误不在 tomcat-users.xml 中,因为我尝试了所有方法,但总是遇到相同的错误。
文件 web.xml 中与我的 TestServlet 相关的脚本是:
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>test.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>Wildcard means whole app requires authentication</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>tomcat</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/login-failed.html</form-error-page>
</form-login-config>
</login-config>
PS:当我输入错误的凭据时,我会看到 login-failed.html 页面,所以当我输入错误的凭据时一切正常。 PS:tomcat-users.xml 文件中的代码是:
<tomcat-users>
<role rolename="manager"/>
<user username="admin" password="admin" roles="manager"/>
</tomcat-users>
谁能帮我找出问题所在?
最佳答案
U 提取它并尝试通过调用 localhost:8080 访问它并提供登录凭据但无法正确登录。意味着您无权访问该 gui。因此您必须手动编辑 XML 文件并像这样修改脚本以访问 gui。之后我希望它一定会起作用
添加以下脚本
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin"
roles="manager-gui,manager-status"/>
</tomcat-users>
manager-gui — Access to the HTML interface.
关于java - 如何修复 tomcat HTTP 状态 403 : access denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48687024/