Author: kaushalye
Date: Tue Oct 30 05:20:47 2007
New Revision: 590049

URL: http://svn.apache.org/viewvc?rev=590049&view=rev
Log:
Reference list in the EncryptedKey can be empty sometimes. But its wrong to 
quit processing the hidden key further. We might need to use that extracted 
session key for further processing of the SOAP message.
Modifying sample service to log the name of the recieved pay load. Useful for 
debugging. 

Modified:
    webservices/rampart/trunk/c/samples/server/sec_echo/echo.c
    webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c

Modified: webservices/rampart/trunk/c/samples/server/sec_echo/echo.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/server/sec_echo/echo.c?rev=590049&r1=590048&r2=590049&view=diff
==============================================================================
--- webservices/rampart/trunk/c/samples/server/sec_echo/echo.c (original)
+++ webservices/rampart/trunk/c/samples/server/sec_echo/echo.c Tue Oct 30 
05:20:47 2007
@@ -30,7 +30,7 @@
     AXIS2_ENV_CHECK(env, NULL);
     
     name = axiom_util_get_localname(node, env);
-     
+    AXIS2_LOG_INFO(env->log, "[rampart][sec_echo_service] Recieved node %s", 
name);     
     ret_node = build_om_programatically(env, name);
     return ret_node;
 }

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?rev=590049&r1=590048&r2=590049&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c 
(original)
+++ webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c Tue Oct 
30 05:20:47 2007
@@ -354,15 +354,17 @@
     reference_list = oxs_token_get_reference_list_data(env, ref_list_node);
 
     /*If there are no references. Nothing to do. Return success*/
+/* 
     if((!reference_list) || (0 == axutil_array_list_size(reference_list, env)))
     {
         AXIS2_LOG_INFO(env->log, "[rampart][shp] Reference List is empty");
         return AXIS2_SUCCESS;
     }
+    
     AXIS2_LOG_INFO(env->log,
                    "[rampart][shp] Reference List has %d node reference(s)",
                    axutil_array_list_size(reference_list, env));
-
+*/
     /*Get the algorithm to decrypt the sesison key*/
     enc_mtd_node = oxs_axiom_get_first_child_node_by_name(
                        env, encrypted_key_node, OXS_NODE_ENCRYPTION_METHOD, 
OXS_ENC_NS, NULL);
@@ -493,9 +495,9 @@
         asym_ctx = NULL;
         return AXIS2_FAILURE;
     }
-
-    for(i=0 ; i < axutil_array_list_size(reference_list, env); i++ )
-    {
+    if(reference_list){
+      for(i=0 ; i < axutil_array_list_size(reference_list, env); i++ )
+      {
         axis2_char_t *id = NULL;
         axis2_char_t *id2 = NULL;
         axiom_node_t *enc_data_node = NULL;
@@ -586,16 +588,18 @@
         ctx = NULL;
 
         AXIS2_LOG_INFO(env->log, "[rampart][shp] Node ID=%s decrypted 
successfuly", id);
-    }/*end of For loop*/
-
+      }/*end of For loop*/
+    }
 
     /*Set the security processed result*/
     rampart_set_security_processed_result(
         env, msg_ctx, RAMPART_SPR_ENC_CHECKED, RAMPART_YES);
 
     /*Free*/
-    oxs_asym_ctx_free(asym_ctx, env);
-    asym_ctx = NULL;
+    if(asym_ctx){
+        oxs_asym_ctx_free(asym_ctx, env);
+        asym_ctx = NULL;
+    }
 
     if(decrypted_sym_key)
     {
@@ -603,9 +607,10 @@
         decrypted_sym_key = NULL;
     }
 
-    axutil_array_list_free(reference_list, env);
-    reference_list = NULL;
-
+    if(reference_list){
+        axutil_array_list_free(reference_list, env);
+        reference_list = NULL;
+    }
     return AXIS2_SUCCESS;
 }
 
@@ -934,8 +939,7 @@
 
     if(!token)
     {
-        AXIS2_LOG_INFO(env->log,
-                       "[rampart][shp] Signature Token is not specified");
+        AXIS2_LOG_INFO(env->log,  "[rampart][shp] Signature Token is not 
specified");
         return AXIS2_SUCCESS;
     }
     token_type = rp_property_get_type(token, env);


Reply via email to