You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by ru...@apache.org on 2007/08/23 13:40:05 UTC

svn commit: r568940 - in /webservices/rampart/trunk/java/modules: rampart-core/src/main/java/org/apache/rampart/ rampart-tests/src/test/java/org/apache/rampart/

Author: ruchithf
Date: Thu Aug 23 04:40:04 2007
New Revision: 568940

URL: http://svn.apache.org/viewvc?rev=568940&view=rev
Log:
Added and NPE check

Added:
    webservices/rampart/trunk/java/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java
Modified:
    webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java
    webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties

Modified: webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java?rev=568940&r1=568939&r2=568940&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java Thu Aug 23 04:40:04 2007
@@ -75,7 +75,7 @@
 			msgCtx.setEnvelope(env);
 			Axis2Util.useDOOM(false);
 			if(doDebug){
-				log.debug("Return process(MessageContext msgCtx)");
+				log.debug("Return process MessageContext msgCtx)");
 			}
 			return null;
 		}
@@ -88,17 +88,24 @@
 		ValidatorData data = new ValidatorData(rmd);
 
 		ArrayList headerBlocks = rmd.getMsgContext().getEnvelope()
-		.getHeader().getHeaderBlocksWithNSURI(WSConstants.WSSE_NS);
-		Iterator headerBlocksIterator = headerBlocks.iterator();
+		    .getHeader().getHeaderBlocksWithNSURI(WSConstants.WSSE_NS);
 		SOAPHeaderBlock secHeader = null;
-		while (headerBlocksIterator.hasNext()) {
-			SOAPHeaderBlock elem = (SOAPHeaderBlock) headerBlocksIterator.next();
-			if(elem.getLocalName().equals(WSConstants.WSSE_LN)) {
-				secHeader = elem;
-				break;
-			}
+		//Issue is axiom - a returned collection must not be null
+		if(headerBlocks != null) {
+    		Iterator headerBlocksIterator = headerBlocks.iterator();
+    		while (headerBlocksIterator.hasNext()) {
+    			SOAPHeaderBlock elem = (SOAPHeaderBlock) headerBlocksIterator.next();
+    			if(elem.getLocalName().equals(WSConstants.WSSE_LN)) {
+    				secHeader = elem;
+    				break;
+    			}
+    		}
 		}
-
+		
+		if(secHeader == null) {
+		    throw new RampartException("missingSecurityHeader");
+		}
+		
 		long t0=0, t1=0, t2=0, t3=0;
 		if(dotDebug){
 			t0 = System.currentTimeMillis();

Modified: webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties?rev=568940&r1=568939&r2=568940&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties Thu Aug 23 04:40:04 2007
@@ -63,6 +63,7 @@
 noSecurityResults= No security processing results from the incoming message
 missingEncryptedKeyInRequest=There was no EncryptedKey in the request message
 rampartConigMissing = Please include configured RampartConfiguration assertion in policy
+missingSecurityHeader = Missing wsse:Security header in request
 
 #Errors in processors
 errorProcessingUT = Error in processing UsernameToken

Added: webservices/rampart/trunk/java/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java?rev=568940&view=auto
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java (added)
+++ webservices/rampart/trunk/java/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java Thu Aug 23 04:40:04 2007
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rampart;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.neethi.Policy;
+
+public class RampartEngineTest extends MessageBuilderTestBase {
+
+
+    public RampartEngineTest(String name) {
+        super(name);
+    }
+    
+    public void testEmptySOAPMessage() throws Exception {
+        
+       try {
+           MessageContext ctx = getMsgCtx();
+           
+           String policyXml = "test-resources/policy/rampart-asymm-binding-6-3des-r15.xml";
+           Policy policy = this.loadPolicy(policyXml);
+           
+           ctx.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
+           
+           RampartEngine engine = new RampartEngine();
+           engine.process(ctx);
+        } catch (RampartException e) {
+           assertEquals(
+                    "Expected rampart to complain about missing security header",
+                    "Missing wsse:Security header in request", e.getMessage()); 
+        }
+    }
+
+}