2015-02-06 93 views
1

我开发一个Web应用程序 enter image description hereHttp status 401此请求需要HTTP认证()。在Tomcat中6

,如果我跑在Tomcat中6,它要求用户名和密码 应用程序,但后3个attempsts它显示 enter image description here 在web.xml文件是

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>LoginRemote</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> 
    <servlet> 

    <description></description> 
    <display-name>remoteSample</display-name> 
    <servlet-name>remoteSample</servlet-name> 
    <servlet-class>com.src.remoteSample</servlet-class> 
    </servlet> 

    <servlet-mapping> 

    <servlet-name>remoteSample</servlet-name> 
    <url-pattern>/remoteSample</url-pattern> 
    </servlet-mapping> 
    <security-constraint> 
     <web-resource-collection> 
     <web-resource-name>Secure</web-resource-name> 
     <url-pattern>/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
     </web-resource-collection> 
    <auth-constraint> 
      <role-name>*</role-name> 
     </auth-constraint> 


    </security-constraint> 
<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>Authentication required</realm-name> 
</login-config> 
<security-role> 
     <role-name>*</role-name> 
    </security-role> 
</web-app> 

我想获得远程用户的用户名和密码该怎么办? 这是我的servlet代码

package com.src; 

import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Enumeration; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.apache.tomcat.util.buf.Base64; 

public class remoteSample extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public remoteSample() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 

     response.setContentType("text/html;charset=UTF-8"); 
     System.out.println("login info:"+request.getRemoteUser()); 
     System.out.println("Authentication type:"+request.getAuthType()); 

    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 

} 

我应该改变我的服务器的Tomcat的server.xml中和web.xml的东西吗?

+0

是你能解决这个问题? – user911 2017-03-02 19:46:20

回答

0

检查您在服务器中使用的领域名称&远程用户是否与以下名称匹配。

<realm-name>Authentication required</realm-name> 

了解详情,请查看本link关于例外

0

请提供下面的代码在web.xml文件中可能会有所帮助。

<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>Basic Authentication Area</realm-name> 
</login-config> 

请提供Tomcat中的用户角色和用户名

<tomcat-users> 
<user name="tomcat" password="tomcat" roles="tomcat" /> 
<user name="role1" password="tomcat" roles="role1" /> 
<user name="both" password="tomcat" roles="tomcat,role1" /> 
</tomcat-users>