我希望网络浏览器使用这样的默认登录提示来询问用户名和密码。我在这里
读到了如何实现它,但它是针对 ASP 的。我希望它在 JSP 或 servlet 中完成,我还想知道如何在我的 servlet 中接收这些用户名和密码
问问题
1985 次
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 回答