Java 在将WSSecurityPolicy与CXF回调处理程序一起使用时,如何存储请求者标识,

Java 在将WSSecurityPolicy与CXF回调处理程序一起使用时,如何存储请求者标识,,java,cxf,apache-camel,ws-security,Java,Cxf,Apache Camel,Ws Security,当使用CallBackHandler(从javax.security.auth.callback.CallBackHandler实现)对UsernameToken进行身份验证时,如何存储请求者的身份以供以后使用 我的用例是用户A请求方法1并接收特定于用户A的数据。用户B请求方法1并接收特定于用户B的数据 我正在使用camel在返回响应之前处理请求,但我需要能够跟踪请求者是谁。您应该能够使用Exchange.AUTHENTICATION的密钥查找主题。blow代码显示了camel如何将UserPr

当使用CallBackHandler(从javax.security.auth.callback.CallBackHandler实现)对UsernameToken进行身份验证时,如何存储请求者的身份以供以后使用

我的用例是用户A请求方法1并接收特定于用户A的数据。用户B请求方法1并接收特定于用户B的数据


我正在使用camel在返回响应之前处理请求,但我需要能够跟踪请求者是谁。

您应该能够使用Exchange.AUTHENTICATION的密钥查找主题。blow代码显示了camel如何将UserPrincipal从cxf消息存储到camel消息头

    // propagate the security subject from CXF security context
    SecurityContext securityContext = cxfMessage.get(SecurityContext.class);
    if (securityContext != null && securityContext.getUserPrincipal() != null) {
        Subject subject = new Subject();
        subject.getPrincipals().add(securityContext.getUserPrincipal());
        camelExchange.getIn().getHeaders().put(Exchange.AUTHENTICATION, subject);
    }