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 ka...@apache.org on 2007/10/30 13:20:53 UTC

svn commit: r590049 - in /webservices/rampart/trunk/c: samples/server/sec_echo/echo.c src/util/rampart_sec_header_processor.c

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);