我使用eclipse创建了一个简单的表单athentification 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>
有人可以帮我找到问题吗?
答案 0 :(得分:1)
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.
答案 1 :(得分:1)
在身份验证约束中,您已配置“ tomcat”角色。您的tomcat-users.xml文件中缺少此角色。