From 42e129ae47706d5bfac43edf2136cb0efdfd3a3e Mon Sep 17 00:00:00 2001 From: slaws Date: Mon, 14 Jun 2010 11:35:36 +0000 Subject: Add a little bit more structure to message header storage to generally avoid having to loop across headers to find the right one. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@954414 13f79535-47bb-0310-9956-ffa450edef68 --- .../jsonrpc/provider/JSONRPCServiceServlet.java | 2 +- .../org/apache/tuscany/sca/invocation/Message.java | 3 ++- .../sca/core/context/impl/RequestContextImpl.java | 2 +- .../core/invocation/NonBlockingInterceptor.java | 3 ++- .../sca/core/invocation/impl/MessageImpl.java | 8 +++---- .../tuscany/sca/policy/security/SecurityUtil.java | 25 ++++++---------------- 6 files changed, 16 insertions(+), 27 deletions(-) diff --git a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceServlet.java b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceServlet.java index 1177940891..742a27e2ce 100644 --- a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceServlet.java +++ b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceServlet.java @@ -297,7 +297,7 @@ public class JSONRPCServiceServlet extends JSONRPCServlet { Message requestMessage = messageFactory.createMessage(); requestMessage.setOperation(jsonOperation); - requestMessage.getHeaders().add(request); + requestMessage.getHeaders().put("RequestMessage", request); requestMessage.setBody(args); diff --git a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java index cadd876aa9..2bafdb64b8 100644 --- a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java +++ b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java @@ -19,6 +19,7 @@ package org.apache.tuscany.sca.invocation; import java.util.List; +import java.util.Map; import org.apache.tuscany.sca.assembly.Endpoint; import org.apache.tuscany.sca.assembly.EndpointReference; @@ -113,7 +114,7 @@ public interface Message { * * @return */ - List getHeaders(); + Map getHeaders(); /** * Returns the binding context in force for this message diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java index cdb510f7ec..1b2d79e4f1 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java +++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java @@ -45,7 +45,7 @@ public class RequestContextImpl implements RequestContext { public Subject getSecuritySubject() { Subject subject = null; - for (Object header : ThreadMessageContext.getMessageContext().getHeaders()){ + for (Object header : ThreadMessageContext.getMessageContext().getHeaders().values()){ if (header instanceof Subject){ subject = (Subject)header; break; diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java index 6435efe4d6..a31a126977 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java +++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java @@ -19,6 +19,7 @@ package org.apache.tuscany.sca.core.invocation; import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -170,7 +171,7 @@ public class NonBlockingInterceptor implements Interceptor { throw new UnsupportedOperationException(); } - public List getHeaders() { + public Map getHeaders() { return null; } public T getBindingContext() { diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/MessageImpl.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/MessageImpl.java index e66fb0567a..cc8cb48cc5 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/MessageImpl.java +++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/MessageImpl.java @@ -18,8 +18,8 @@ */ package org.apache.tuscany.sca.core.invocation.impl; -import java.util.ArrayList; -import java.util.List; +import java.util.HashMap; +import java.util.Map; import org.apache.tuscany.sca.assembly.Endpoint; import org.apache.tuscany.sca.assembly.EndpointReference; @@ -32,7 +32,7 @@ import org.apache.tuscany.sca.invocation.Message; * @version $Rev $Date$ */ public class MessageImpl implements Message { - private List headers = new ArrayList(); + private Map headers = new HashMap(); private Object body; private Object messageID; private boolean isFault; @@ -99,7 +99,7 @@ public class MessageImpl implements Message { this.operation = op; } - public List getHeaders() { + public Map getHeaders() { return headers; } diff --git a/sca-java-2.x/trunk/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityUtil.java b/sca-java-2.x/trunk/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityUtil.java index d2e0180095..50349cdf88 100644 --- a/sca-java-2.x/trunk/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityUtil.java +++ b/sca-java-2.x/trunk/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityUtil.java @@ -33,20 +33,16 @@ import org.apache.tuscany.sca.invocation.Message; */ public class SecurityUtil { + public static String SubjectString = "Subject"; + public static String PrincipalString = "Principal"; + public static Subject getSubject(Message msg){ - Subject subject = null; - - for (Object header : msg.getHeaders()){ - if (header instanceof Subject){ - subject = (Subject)header; - break; - } - } + Subject subject = (Subject)msg.getHeaders().get(SubjectString); if (subject == null){ subject = new Subject(); - msg.getHeaders().add(subject); + msg.getHeaders().put(SubjectString, subject); } return subject; @@ -64,15 +60,6 @@ public class SecurityUtil { public static Principal getPrincipal(Message msg){ - Principal principal = null; - - for (Object header : msg.getHeaders()){ - if (header instanceof Principal){ - principal = (Principal)header; - break; - } - } - - return principal; + return (Principal)msg.getHeaders().get(PrincipalString); } } -- cgit v1.2.3