You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by co...@apache.org on 2015/07/14 17:56:51 UTC
camel git commit: Store JAAS Subject from CXF in the
Exchange.AUTHENTICATION header if it exists
Repository: camel
Updated Branches:
refs/heads/master 2205b4a6a -> 7e885d766
Store JAAS Subject from CXF in the Exchange.AUTHENTICATION header if it exists
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7e885d76
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7e885d76
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7e885d76
Branch: refs/heads/master
Commit: 7e885d766939460df496b566284d6e49b94ca63d
Parents: 2205b4a
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Tue Jul 14 16:56:22 2015 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Tue Jul 14 16:56:44 2015 +0100
----------------------------------------------------------------------
.../org/apache/camel/component/cxf/DefaultCxfBinding.java | 8 ++++++--
.../camel/component/cxf/jaxrs/DefaultCxfRsBinding.java | 7 ++++++-
2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/7e885d76/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
index 1424963..51bf027 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
@@ -41,7 +41,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
-
import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
import org.apache.camel.component.cxf.common.message.CxfConstants;
@@ -66,6 +65,7 @@ import org.apache.cxf.message.Attachment;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageContentsList;
import org.apache.cxf.message.MessageUtils;
+import org.apache.cxf.security.LoginSecurityContext;
import org.apache.cxf.security.SecurityContext;
import org.apache.cxf.service.Service;
import org.apache.cxf.service.invoker.MethodDispatcher;
@@ -248,7 +248,11 @@ public class DefaultCxfBinding implements CxfBinding, HeaderFilterStrategyAware
// propagate the security subject from CXF security context
SecurityContext securityContext = cxfMessage.get(SecurityContext.class);
- if (securityContext != null && securityContext.getUserPrincipal() != null) {
+ if (securityContext instanceof LoginSecurityContext
+ && ((LoginSecurityContext)securityContext).getSubject() != null) {
+ camelExchange.getIn().getHeaders().put(Exchange.AUTHENTICATION,
+ ((LoginSecurityContext)securityContext).getSubject());
+ } else if (securityContext != null && securityContext.getUserPrincipal() != null) {
Subject subject = new Subject();
subject.getPrincipals().add(securityContext.getUserPrincipal());
camelExchange.getIn().getHeaders().put(Exchange.AUTHENTICATION, subject);
http://git-wip-us.apache.org/repos/asf/camel/blob/7e885d76/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
index 4d53563..c060734 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
@@ -38,6 +38,7 @@ import org.apache.cxf.helpers.HttpHeaderHelper;
import org.apache.cxf.jaxrs.impl.MetadataMap;
import org.apache.cxf.jaxrs.model.OperationResourceInfoStack;
import org.apache.cxf.message.MessageContentsList;
+import org.apache.cxf.security.LoginSecurityContext;
import org.apache.cxf.security.SecurityContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -129,7 +130,11 @@ public class DefaultCxfRsBinding implements CxfRsBinding, HeaderFilterStrategyAw
// propagate the security subject from CXF security context
SecurityContext securityContext = cxfMessage.get(SecurityContext.class);
- if (securityContext != null && securityContext.getUserPrincipal() != null) {
+ if (securityContext instanceof LoginSecurityContext
+ && ((LoginSecurityContext)securityContext).getSubject() != null) {
+ camelExchange.getIn().getHeaders().put(Exchange.AUTHENTICATION,
+ ((LoginSecurityContext)securityContext).getSubject());
+ } else if (securityContext != null && securityContext.getUserPrincipal() != null) {
Subject subject = new Subject();
subject.getPrincipals().add(securityContext.getUserPrincipal());
camelExchange.getIn().getHeaders().put(Exchange.AUTHENTICATION, subject);