Author: manjula
Date: Wed Aug  1 02:09:57 2007
New Revision: 561724

URL: http://svn.apache.org/viewvc?view=rev&rev=561724
Log:
Fixing some bugs related to RAMPARTC-25.

Modified:
    webservices/rampart/trunk/c/src/util/rampart_context.c
    webservices/rampart/trunk/c/src/util/rampart_encryption.c
    webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
    webservices/rampart/trunk/c/src/util/rampart_signature.c

Modified: webservices/rampart/trunk/c/src/util/rampart_context.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_context.c?view=diff&rev=561724&r1=561723&r2=561724
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_context.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_context.c Wed Aug  1 02:09:57 
2007
@@ -974,8 +974,10 @@
         int i = 0;
         soap_header_blocks = 
axiom_soap_header_get_header_blocks_with_namespace_uri(soap_header,env,namespace);
         if(!soap_header_blocks)
-            return AXIS2_FAILURE;
-
+        {
+            AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] Header cannot 
find with namespace %s",namespace);
+            return AXIS2_SUCCESS;
+        }
         for(i=0 ; i<axutil_array_list_size(soap_header_blocks,env); i++)
         {
             axiom_soap_header_block_t *header_block = NULL;
@@ -989,7 +991,6 @@
                     axutil_array_list_add(nodes_to_encrypt_or_sign,env,node);
                 }
             }
-
         }/*eof for*/
         return AXIS2_SUCCESS;
     }
@@ -1023,11 +1024,13 @@
                             
axutil_array_list_add(nodes_to_encrypt_or_sign,env,ret_node);
                             return AXIS2_SUCCESS;
                         }
-
                     }
-
                 }
-
+            }
+            else
+            {
+                AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] Cannot 
find the header with name %s", local_name);
+                return AXIS2_FAILURE;
             }
         }
     }
@@ -1604,46 +1607,20 @@
         signed_encrypted_parts = 
rp_secpolicy_get_encrypted_parts(rampart_context->secpolicy,env);
 
     if(!signed_encrypted_parts)
-        return AXIS2_FAILURE;
-
-    parts = rp_signed_encrypted_parts_get_headers(signed_encrypted_parts,env);
-    if(!parts || (axutil_array_list_size(parts,env)==0))
     {
-        if(rp_signed_encrypted_parts_get_body(signed_encrypted_parts,env))
+        if(is_sign)
         {
-            axiom_soap_body_t *body = NULL;
-            axiom_node_t *body_node = NULL;
-            axiom_node_t *body_child_node = NULL;
-
-            if(is_sign)
-                AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] No Signed 
parts specified. Using the body.");
-            else
-                AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] No 
Encrypted parts specified. Using the body.");
-
-            body = axiom_soap_envelope_get_body(soap_envelope, env);
-            body_node = axiom_soap_body_get_base_node(body, env);
-            body_child_node = axiom_node_get_first_element(body_node, env);
-            if(is_sign)
-            {    
-                axutil_array_list_add(nodes_to_sign_or_encrypt, env, 
body_node);
-            }
-            else
-            {
-                axutil_array_list_add(nodes_to_sign_or_encrypt, env, 
body_child_node);
-            }    
-            return AXIS2_SUCCESS;
+            AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] Nothing to 
sign outside Secyrity header.");
         }
         else
         {
-            if(is_sign)
-                AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] Nothing 
to sign outside Secyrity header.");
-            else
-                AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] Nothing 
to encrypt outside Secyrity header.");
-
-            return AXIS2_FAILURE;
+            AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] Nothing to 
encrypt outside Secyrity header.");
         }
+        return AXIS2_SUCCESS;
     }
-    else
+
+    parts = rp_signed_encrypted_parts_get_headers(signed_encrypted_parts,env);
+    if(parts && (axutil_array_list_size(parts,env)!=0))
     {
         int i = 0;
         for(i=0; i<axutil_array_list_size(parts,env); i++)
@@ -1657,30 +1634,31 @@
                     return AXIS2_FAILURE;
                 }
             }
+        }
+    }        
+
+    if(rp_signed_encrypted_parts_get_body(signed_encrypted_parts,env))
+    {
+        axiom_soap_body_t *body = NULL;
+        axiom_node_t *body_node = NULL;
+        axiom_node_t *body_child_node = NULL;
 
+        AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] Including the 
body.");
+        body = axiom_soap_envelope_get_body(soap_envelope, env);
+        body_node = axiom_soap_body_get_base_node(body, env);
+        body_child_node = axiom_node_get_first_element(body_node, env);
+        if(is_sign)
+        {
+            axutil_array_list_add(nodes_to_sign_or_encrypt, env, body_node);
         }
-        if(rp_signed_encrypted_parts_get_body(signed_encrypted_parts,env))
+        else
         {
-            axiom_soap_body_t *body = NULL;
-            axiom_node_t *body_node = NULL;
-            axiom_node_t *body_child_node = NULL;
-
-            AXIS2_LOG_INFO(env->log, "[rampart][rampart_context] Including the 
body.");
-            body = axiom_soap_envelope_get_body(soap_envelope, env);
-            body_node = axiom_soap_body_get_base_node(body, env);
-            body_child_node = axiom_node_get_first_element(body_node, env);
-            if(is_sign)
-            {
-                axutil_array_list_add(nodes_to_sign_or_encrypt, env, 
body_node);
-            }
-            else
-            {
-                axutil_array_list_add(nodes_to_sign_or_encrypt, env, 
body_child_node);
-            }
-            return AXIS2_SUCCESS;
+            axutil_array_list_add(nodes_to_sign_or_encrypt, env, 
body_child_node);
         }
+        
+        return AXIS2_SUCCESS;
+    }    
 
-    }
     return status;
 }
 

Modified: webservices/rampart/trunk/c/src/util/rampart_encryption.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_encryption.c?view=diff&rev=561724&r1=561723&r2=561724
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_encryption.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_encryption.c Wed Aug  1 
02:09:57 2007
@@ -96,11 +96,16 @@
 
     signature_protection = 
rampart_context_is_encrypt_signature(rampart_context, env);
 
-    /*status = 
rampart_context_get_nodes_to_encrypt(rampart_context,env,soap_envelope,nodes_to_encrypt);*/
-
     status = rampart_enc_get_nodes_to_encrypt(rampart_context, env, 
soap_envelope, nodes_to_encrypt);
 
-    if((status!=AXIS2_SUCCESS)||(axutil_array_list_size(nodes_to_encrypt, 
env)==0))
+    if(status != AXIS2_SUCCESS)
+    {
+        AXIS2_LOG_INFO(env->log, "[rampart][rampart_signature] Error occured 
in Adding Encrypted parts..");
+        axutil_array_list_free(nodes_to_encrypt, env);
+        nodes_to_encrypt = NULL;
+        return AXIS2_FAILURE;
+    }
+    if((axutil_array_list_size(nodes_to_encrypt, env)==0))
     {
         if(!signature_protection)
         {    

Modified: webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c?view=diff&rev=561724&r1=561723&r2=561724
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c 
(original)
+++ webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c Wed Aug 
 1 02:09:57 2007
@@ -524,7 +524,7 @@
                         ref = oxs_token_get_reference(env, str_child_node);
                         ref_id = 
axutil_string_substring_starting_at(axutil_strdup(env, ref), 1);
 
-                        encrypted_key_node = oxs_axiom_get_node_by_id(env, 
sec_node, "wsu:Id", ref_id);
+                        encrypted_key_node = oxs_axiom_get_node_by_id(env, 
sec_node, "Id", ref_id);
                         if(encrypted_key_node)
                         {
                             ref_list_node = axiom_node_detach(ref_list_node, 
env); 

Modified: webservices/rampart/trunk/c/src/util/rampart_signature.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_signature.c?view=diff&rev=561724&r1=561723&r2=561724
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_signature.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_signature.c Wed Aug  1 
02:09:57 2007
@@ -153,8 +153,15 @@
 
     /*  status = 
rampart_context_get_nodes_to_sign(rampart_context,env,soap_envelope,nodes_to_sign);*/
     status = 
rampart_sig_get_nodes_to_sign(rampart_context,env,soap_envelope,nodes_to_sign);
+    if(status != AXIS2_SUCCESS)
+    {
+        AXIS2_LOG_INFO(env->log, "[rampart][rampart_signature] Error occured 
in Adding signed parts.");
+        axutil_array_list_free(nodes_to_sign, env);
+        nodes_to_sign = NULL;
+        return AXIS2_FAILURE;
+    }
 
-    if((status!=AXIS2_SUCCESS)||(axutil_array_list_size(nodes_to_sign,env)==0))
+    if((axutil_array_list_size(nodes_to_sign,env)==0))
     {
         AXIS2_LOG_INFO(env->log, "[rampart][rampart_signature] No parts 
specified or specified parts can't be found for Signature.");
         return AXIS2_SUCCESS;


Reply via email to