时间:2010-06-01 07:24:25

标签: java web-services authorization

我正在使用URLConnection类打开与WebService的连接。我还设置了基本授权的请求属性,如下所示:

c.setRequestProperty("Authorization", "Basic " + usernameAndPasswordEncoded);

其中c是URLConnection类型的对象。所以这是WebService调用的客户端。现在在服务器端,我需要从会话中获取用户名:

User user = (User) request.getSession().getAttribute("user");

但这不会获得用户名。另外,如果我查看调试模式,我会在HttpSession对象中看到一个匿名的userName。 如何解决此问题,以便通过客户端将用户名发送到WebService服务器进行授权?

谢谢大家!

2 个答案:

答案 0 :(得分:3)

在服务器端,您需要在web.xml中指定登录方法。例如,

<login-config>
  <auth-method>BASIC</auth-method>
  <realm-name>My App</realm-name>
</login-config>

完成此操作后,应使用request.getRemoteUser()

提供用户名

答案 1 :(得分:0)

servlet规范提供了明确的抽象 - 你需要的是request.getRemoteUser()。,或者request.getUserPrincipal()