2

我正在尝试检索最近登录的用户的用户名。我使用.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。请任何人告诉我如何检索远程用户信息。提前致谢....

4

2 回答 2

1

request.getRemoteUser()将返回登录的用户,否则它将返回 null。这取决于您使用的身份验证类型。

另一个原因是客户端(浏览器)没有在请求中发送用户名。如果您位于要求身份验证的 URL 树之外,则可能会发生这种情况

于 2013-02-04T11:45:55.497 回答
0

只有使用 HTTP 基本身份验证才能填充远程用户。

这是在 Java中设置基本 HTTP 身份验证的简单教程

事实上,您可以使用以下任何一种标准身份验证机制

static String BASIC_AUTH 基本身份验证的字符串标识符。

static String CLIENT_CERT_AUTH 用于客户端证书身份验证的字符串标识符。

static String DIGEST_AUTH Digest 身份验证的字符串标识符。

静态字符串 FORM_AUTH

于 2013-02-07T12:42:35.050 回答