从Java中的Web服务实现类访问用户名
使用CXF WSAuthentication Interceptor对用户进行身份验证后。。。我需要服务实现中的用户名(业务逻辑)。想知道是否有一种简单的方法可以访问实现类中的用户名?为什么不创建一个用户对象,并将其放置在内存中的某个位置(在静态映射或列表等中),同时使用wsse:security中的用户名进行身份验证?一旦到达服务端点实现类,就会丢失MessageContext,因此很难读取标题。在实现类中声明这些标题:从Java中的Web服务实现类访问用户名,java,web-services,Java,Web Services,使用CXF WSAuthentication Interceptor对用户进行身份验证后。。。我需要服务实现中的用户名(业务逻辑)。想知道是否有一种简单的方法可以访问实现类中的用户名?为什么不创建一个用户对象,并将其放置在内存中的某个位置(在静态映射或列表等中),同时使用wsse:security中的用户名进行身份验证?一旦到达服务端点实现类,就会丢失MessageContext,因此很难读取标题。在实现类中声明这些标题: @Resource private WebServiceContext
@Resource
private WebServiceContext wsContext;
然后,以任何方式:
Principal p = wsContext.getUserPrinciple();
String username = p.getName();
@资源指示web服务堆栈将web服务上下文注入到wsContext属性中