从Java中的Web服务实现类访问UserName

时间:2012-02-17 17:11:46

标签: java web-services

使用CXF WSAuthentication Interceptor对用户进行身份验证后...我需要服务实现中的用户名(业务逻辑)。想知道是否有一种简单的方法可以访问Implementation类中的用户名?

2 个答案:

答案 0 :(得分:1)

在您的实现类中声明这些:

@Resource
private WebServiceContext wsContext;

然后在任何方法中做:

Principal p = wsContext.getUserPrinciple();
String username = p.getName();

@Resource指示Web服务堆栈将Web服务上下文注入到wsContext属性中。

答案 1 :(得分:0)

为什么不创建一个用户对象并将其放在内存中(在静态Map或List等中)wsse:security中的userName,同时进行身份验证?一旦到达Service端点实现类,就会丢失MessageContext,因此很难读取头文件。