Author: ningjiang Date: Thu May 27 03:04:55 2010 New Revision: 948658 URL: http://svn.apache.org/viewvc?rev=948658&view=rev Log: CAMEL-2757 Set the SecurityContext into camel message header
Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java?rev=948658&r1=948657&r2=948658&view=diff ============================================================================== --- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java (original) +++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java Thu May 27 03:04:55 2010 @@ -26,6 +26,7 @@ import java.util.Map; import java.util.Set; import javax.activation.DataHandler; +import javax.security.auth.Subject; import javax.xml.namespace.QName; import javax.xml.transform.dom.DOMSource; import javax.xml.ws.Holder; @@ -52,6 +53,7 @@ import org.apache.cxf.jaxws.context.Wrap import org.apache.cxf.message.Attachment; import org.apache.cxf.message.Message; import org.apache.cxf.message.MessageContentsList; +import org.apache.cxf.security.SecurityContext; import org.apache.cxf.service.Service; import org.apache.cxf.service.model.BindingMessageInfo; import org.apache.cxf.service.model.BindingOperationInfo; @@ -465,6 +467,14 @@ public class DefaultCxfBinding implement ((List<?>)value).clear(); } } + + // propagate the security subject from CXF security context + SecurityContext securityContext = cxfMessage.get(SecurityContext.class); + if (securityContext != null) { + Subject subject = new Subject(); + subject.getPrincipals().add(securityContext.getUserPrincipal()); + camelHeaders.put(Exchange.AUTHENTICATION, subject); + } } @SuppressWarnings("unchecked")