WebServiceContext.getUserPrincipal() is null for incoming SAML Token or transformed token -----------------------------------------------------------------------------------------
Key: CXF-3521 URL: https://issues.apache.org/jira/browse/CXF-3521 Project: CXF Issue Type: Improvement Components: WS-* Components Affects Versions: 2.4 Reporter: Oliver Wulff If my service provider receives a SAML token or a BinarySecurityToken (will be transformed) I can't read the principle using the JAX-WS WebServiceContext. example: ... @Resource WebServiceContext wsContext; public java.math.BigInteger doubleIt(java.math.BigInteger numberToDouble) { Principal pr = wsContext.getUserPrincipal(); ... The method getUserPrincipal() returns null. I see two ways to fix this. 1) Pass the principal to the constructor of WSSecurityEngineResult in the processor of WSS4J ex. if (assertion.isSigned()) { result = new WSSecurityEngineResult(WSConstants.ST_SIGNED, assertion); } else { result = new WSSecurityEngineResult(WSConstants.ST_UNSIGNED, assertion); } similar for BinarySecurityTokenProcessor. This allows the CXF WSS4JInInterceptor to read the principal like this: final Principal p = (Principal)o.get(WSSecurityEngineResult.TAG_PRINCIPAL); 2) Extend the WSS4JInInterceptor to parse the SAMLToken (or the transformed if available), read the subject and create the CXF SecurityContext. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira