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 ma...@apache.org on 2007/08/01 11:09:57 UTC
svn commit: r561724 - in /webservices/rampart/trunk/c/src/util:
rampart_context.c rampart_encryption.c rampart_sec_header_processor.c
rampart_signature.c
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;