You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2007/12/28 12:28:36 UTC
svn commit: r607209 - in /incubator/tuscany/java/sca/modules:
binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/
core-spi/src/main/java/org/apache/tuscany/sca/invocation/
core/src/main/java/org/apache/tuscany/sca/core/invocation/ i...
Author: svkrish
Date: Fri Dec 28 03:28:34 2007
New Revision: 607209
URL: http://svn.apache.org/viewvc?rev=607209&view=rev
Log:
changes to flow authenticated principal from ws binding to invoked implementations
Modified:
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java
incubator/tuscany/java/sca/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/ImmutableMessage.java
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java?rev=607209&r1=607208&r2=607209&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java Fri Dec 28 03:28:34 2007
@@ -26,13 +26,16 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
+import java.security.Principal;
import java.security.PrivilegedAction;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.security.auth.Subject;
import javax.wsdl.Definition;
import javax.wsdl.Port;
import javax.wsdl.extensions.soap.SOAPAddress;
@@ -98,6 +101,9 @@
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentService;
import org.apache.tuscany.sca.runtime.RuntimeWire;
+import org.apache.ws.security.WSSecurityEngineResult;
+import org.apache.ws.security.handler.WSHandlerConstants;
+import org.apache.ws.security.handler.WSHandlerResult;
public class Axis2ServiceProvider {
@@ -517,7 +523,6 @@
// methods for Axis2 message receivers
public Object invokeTarget(Operation op, Object[] args, MessageContext inMC) throws InvocationTargetException {
-
String callbackAddress = null;
String callbackID = null;
Object conversationID = null;
@@ -559,6 +564,9 @@
msg.setBody(args);
msg.setOperation( op );
+ //fill message with QoS context info
+ fillQoSContext(msg, inMC);
+
// if reference parameters are needed, create a new "To" EPR to hold them
EndpointReference to = null;
if (callbackAddress != null ||
@@ -683,6 +691,29 @@
moduleBuilder.populateModule();
} catch (IOException e) {
throw new DeploymentException(e);
+ }
+ }
+
+ private void fillQoSContext(Message message, MessageContext axis2MsgCtx) {
+ if ( axis2MsgCtx.getProperty(WSHandlerConstants.RECV_RESULTS) != null &&
+ axis2MsgCtx.getProperty(WSHandlerConstants.RECV_RESULTS) instanceof Vector ) {
+ Vector recvResults = (Vector)axis2MsgCtx.getProperty(WSHandlerConstants.RECV_RESULTS);
+ for ( int count1 = 0 ; count1 < recvResults.size() ; ++count1 ) {
+ if ( recvResults.elementAt(count1) instanceof WSHandlerResult ) {
+ WSHandlerResult wshr = (WSHandlerResult)recvResults.elementAt(count1);
+ Vector results = wshr.getResults();
+ for ( int count2 = 0 ; count2 < results.size() ; ++count2 ) {
+ if ( results.elementAt(count2) instanceof WSSecurityEngineResult ) {
+ WSSecurityEngineResult securityResult =
+ (WSSecurityEngineResult)wshr.getResults().elementAt(count2);
+ if ( securityResult.get("principal") != null ) {
+ message.getQoSContext().put(Message.QOS_CTX_SECURITY_PRINCIPAL, securityResult.get("principal"));
+ }
+ }
+ }
+ }
+ }
+
}
}
}
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java?rev=607209&r1=607208&r2=607209&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java Fri Dec 28 03:28:34 2007
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.sca.invocation;
+import java.util.Map;
+
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.runtime.EndpointReference;
@@ -27,6 +29,7 @@
* @version $Rev $Date
*/
public interface Message {
+ public static final String QOS_CTX_SECURITY_PRINCIPAL = "PRINCIPAL";
/**
* Returns the body of the message, which will be the payload or parameters associated with the wire
@@ -103,5 +106,12 @@
* @param op The operation that created the message
*/
void setOperation(Operation op);
-
+
+ /**
+ * Returns a map of objects that represents the QoS context that wraps this message such as
+ * invoking authenticated principal and so on.
+ *
+ * @return
+ */
+ Map<String, Object> getQoSContext();
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java?rev=607209&r1=607208&r2=607209&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java Fri Dec 28 03:28:34 2007
@@ -18,6 +18,9 @@
*/
package org.apache.tuscany.sca.core.invocation;
+import java.util.Hashtable;
+import java.util.Map;
+
import org.apache.tuscany.sca.core.assembly.EndpointReferenceImpl;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Message;
@@ -28,11 +31,12 @@
*
* @version $Rev $Date
*/
-public class MessageImpl implements Message {
+public class MessageImpl implements Message {
private Object body;
private Object messageID;
private boolean isFault;
private Operation operation;
+ private Map<String, Object> qosContext = new Hashtable<String, Object>();
private EndpointReference from;
private EndpointReference to;
@@ -91,6 +95,10 @@
public void setOperation(Operation op) {
this.operation = op;
+ }
+
+ public Map<String, Object> getQoSContext() {
+ return qosContext;
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java?rev=607209&r1=607208&r2=607209&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java Fri Dec 28 03:28:34 2007
@@ -19,6 +19,7 @@
package org.apache.tuscany.sca.core.invocation;
import java.util.LinkedList;
+import java.util.Map;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Interceptor;
@@ -154,6 +155,9 @@
return null;
}
+ public Map<String, Object> getQoSContext() {
+ return null;
+ }
}
}
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java?rev=607209&r1=607208&r2=607209&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java Fri Dec 28 03:28:34 2007
@@ -28,6 +28,7 @@
import org.apache.tuscany.sca.assembly.OperationsConfigurator;
import org.apache.tuscany.sca.implementation.java.JavaImplementation;
import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.policy.Intent;
import org.apache.tuscany.sca.policy.PolicySet;
import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
@@ -47,10 +48,10 @@
}
public void process(RuntimeWire wire) {
- Contract contract = wire.getSource().getContract();
+ /*Contract contract = wire.getSource().getContract();
if (!(contract instanceof RuntimeComponentReference)) {
return;
- }
+ }*/
RuntimeComponent component = wire.getTarget().getComponent();
if ( component != null && component.getImplementation() instanceof JavaImplementation ) {
@@ -100,7 +101,7 @@
}
if ( !applicablePolicyHandlers.isEmpty() ) {
- chain.addInterceptor(0, new PolicyHandlingInterceptor(chain.getTargetOperation(),
+ chain.addInterceptor(1, new PolicyHandlingInterceptor(chain.getTargetOperation(),
applicablePolicyHandlers));
}
}
Modified: incubator/tuscany/java/sca/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/ImmutableMessage.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/ImmutableMessage.java?rev=607209&r1=607208&r2=607209&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/ImmutableMessage.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/ImmutableMessage.java Fri Dec 28 03:28:34 2007
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.sca.implementation.notification;
+import java.util.Map;
+
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Message;
import org.apache.tuscany.sca.runtime.EndpointReference;
@@ -84,6 +86,11 @@
* @see org.apache.tuscany.sca.invocation.Message#getReplyTo()
*/
public EndpointReference getReplyTo() {
+ return null;
+ }
+
+ public Map<String, Object> getQoSContext() {
+ // TODO Auto-generated method stub
return null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org