如何从请求中获取远程用户名

时间:2011-12-20 12:20:37

标签: java httprequest

我使用了request.getRemoteUser,但它提供了null作为输出。有人能告诉我如何获取远程用户名的正确步骤吗?

2 个答案:

答案 0 :(得分:4)

来自API Doc

  

如果用户已经过身份验证,则返回发出此请求的用户的登录名;如果用户尚未通过身份验证,则返回null。是否随每个后续请求一起发送用户名取决于浏览器和身份验证类型。与CGI变量REMOTE_USER的值相同。

您的用户似乎未经过身份验证。要进行身份验证,您可以使用基本身份验证。在这种情况下,客户端应发送HTTP标头授权:

Authorization: Basic user:password

应使用Base64编码对user:password的连接进行编码。

答案 1 :(得分:2)

如果request.getRemoteUser返回null,则表示用户未经过身份验证(请参阅documentation)。您需要某种身份验证方法。 request.getRemoteUser不会返回用户登录其计算机时使用的登录名。它返回用于登录Web应用程序的用户名(尽管有时可以使用NTLM自动登录Web应用程序)。