使用CXF WSAuthentication Interceptor对用户进行身份验证后...我需要服务实现中的用户名(业务逻辑)。想知道是否有一种简单的方法可以访问Implementation类中的用户名?
答案 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,因此很难读取头文件。