2

我正在尝试在 Apache Tomcat 中实现 BASIC auth,但遇到了一个奇怪的问题。

当我访问http://localhost:8080.该框时显示允许输入用户名和密码,问题是它无法验证成功,该框一次又一次地显示。

以下是我的设置:

/WEB-INF/web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">


  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <security-constraint>
    <web-resource-collection>
        <web-resource-name></web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>manager</role-name>
    </auth-constraint>
   </security-constraint>

   <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>my realm</realm-name>
   </login-config>


</web-app>

apache-tomcat-8.0.14/conf/tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<tomcat-users>
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
-->
<!--
  NOTE:  The sample user and role entries below are wrapped in a comment
  and thus are ignored when reading this file. Do not forget to remove
  <!.. ..> that surrounds them.
-->
<!--   
  <role rolename="tomcat"/>
  <role rolename="role1"/>
-->
  <role rolename="manager" />

<!--   
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
-->
  <user username="manager" password="manager" roles="manager"/>


</tomcat-users>

这是我的项目结构

网页内容/index.jsp

只是一个欢迎文件。

我做错了什么?或者我错过了什么?我为此搜索了很多,但仍然找不到解决方案。我是stackoverflow的新手,希望我的问题很清楚,有些人可以提供帮助!

4

1 回答 1

1

如果您使用的是 Eclipse 集成的 Tomcat,则配置您可以在项目的左侧导航面板中看到的 tomcat-users.xml 文件。服务器 --> Tomcat --> tomcat-users.xml

如果您尚未配置名为“我的领域”的领域或将 my-realm 值设置为“默认”,请从您的 web.xml 中删除我的领域。

于 2016-08-09T13:41:02.643 回答