我正在使用一个URLConnection类打开一个到WebService的连接。我还设置了基本授权的request属性,如下所示:
c.setRequestProperty("Authorization", "Basic " + usernameAndPasswordEncoded);其中c是URLConnection类型的对象。这是WebService调用的客户端。现在在服务器端,我需要从会话中获取用户名:
User user = (User) request.getSession().getAttribute("user");但这不会得到用户名。此外,如果我查看调试模式,我会在HttpSession对象中看到一个匿名userName。如何解决这个问题,使用户名通过客户端发送到WebService服务器进行授权?
谢谢大家!
发布于 2010-06-01 19:23:47
在服务器端,需要在web.xml中指定登录方式。例如,
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>My App</realm-name>
</login-config>完成此操作后,应该可以使用request.getRemoteUser()获得用户名。
发布于 2010-06-01 15:36:08
servlet规范为此提供了明确的抽象--您需要的是request.getRemoteUser(),或者request.getUserPrincipal()
https://stackoverflow.com/questions/2947922
复制相似问题