我正在尝试检索最近登录的用户的用户名。我使用.getRemoteUser()
方法来读取用户名。但它没有显示用户信息。
我的代码是:
response.setContentType("text/plain");
PrintWriter out= response.getWriter();
// Some introductory HTML...
String remoteUser = request.getRemoteUser();
// See if the client is allowed
if(remoteUser == null) {
out.println("Welcome");
} else {
out.println("Welcome " + remoteUser + "!");
}
我不知道为什么没有给出正确的结果。它总是产生结果“欢迎”。这意味着 request.getRemoteUser()== null 。请有人告诉我如何检索远程用户信息。提前谢谢....
答案 0 :(得分:1)
request.getRemoteUser()将返回登录的用户,否则将返回null。这取决于您使用的是哪种身份验证。
另一个原因是客户端(浏览器)没有发送带有请求的用户名。如果您位于要求身份验证的URL树之外,则会发生这种情况
答案 1 :(得分:0)
只有使用HTTP基本身份验证才能填充远程用户。
以下是设置basic HTTP authentication in Java
的简单教程您可以使用以下任何一种标准身份验证机制
static String BASIC_AUTH 基本身份验证的字符串标识符。
static String CLIENT_CERT_AUTH 客户端证书身份验证的字符串标识符。
static String DIGEST_AUTH 摘要式身份验证的字符串标识符。
静态字符串FORM_AUTH