1

我希望网络浏览器使用这样的默认登录提示来询问用户名和密码。我在这里

火狐登录提示
读到了如何实现它,但它是针对 ASP 的。我希望它在 JSP 或 servlet 中完成,我还想知道如何在我的 servlet 中接收这些用户名和密码

4

3 回答 3

0

您需要使用BASIC身份验证。你需要使用JAAS相同的。 本教程提供FORM基于身份验证。但是当你想要BASIC身份验证时,你需要

<login-config>
     <auth-method>BASIC</auth-method>
</login-config>

您可以按如下方式检索用户主体

request.getUserPrincipal().getName().toString(); 
于 2013-07-30T08:17:09.203 回答
0

您必须为此使用基本身份验证,您可以参考以下链接,它使用 servlet 提供基本身份验证。

<login-config>
        <auth-method>BASIC</auth-method>
</login-config>

它在 web.xml 中配置基本身份验证另外,您需要添加

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="yourname" password="yourpassword" roles="tomcat"/>
  <user username="test" password="test"/>
</tomcat-users>

在 tomcat-users.xml 中

示例链接: http ://www.avajava.com/tutorials/lessons/how-do-i-use-basic-authentication-with-tomcat.html?page=1

希望对您有所帮助。

于 2013-07-30T09:04:26.957 回答
0
public void  doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("windows-31j");
    response.setContentType("text/html; charset=windows-31j");
    String auth = request.getHeader("Authorization");
    if (auth == null)
    {
      response.setStatus(401); 
      response.setHeader("Cache-Control","no-store"); 
      response.setDateHeader("Expires",0); 
      response.setHeader("WWW-authenticate","Basic Realm=\"AuthDemo Server\""); 

    } else {
        response.getWriter().print("Authorization :" + request.getHeader("Authorization"));
    }

            }
      }
于 2014-02-21T05:58:21.477 回答