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()); 
+        }
+    }
+
+}


Reply via email to