You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ma...@apache.org on 2007/05/17 16:07:26 UTC

svn commit: r538931 - in /webservices/axis2/scratch/c/neethi: axis2c/neethi/test/ rampart/include/ rampart/samples/client/sec_echo/ rampart/src/omxmlsec/ rampart/src/util/

Author: manjula
Date: Thu May 17 07:07:24 2007
New Revision: 538931

URL: http://svn.apache.org/viewvc?view=rev&rev=538931
Log:
Adding minor changes done during the interops to the svn

Modified:
    webservices/axis2/scratch/c/neethi/axis2c/neethi/test/main
    webservices/axis2/scratch/c/neethi/axis2c/neethi/test/main.c
    webservices/axis2/scratch/c/neethi/rampart/include/rampart_context.h
    webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo.c
    webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/policy.xml
    webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/encryption.c
    webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_encryption.c
    webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_signature.c
    webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_context.c
    webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_encryption.c
    webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_sec_header_processor.c
    webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_signature.c

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/test/main
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/test/main?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
Binary files - no diff available.

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/test/main.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/test/main.c?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/test/main.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/test/main.c Thu May 17 07:07:24 2007
@@ -6,18 +6,32 @@
 #include <stdio.h>
 #include <axiom_xml_reader.h>
 #include <neethi_engine.h>
-
+#include <axutil_hash.h>
 
 axis2_status_t AXIS2_CALL
 om_node_serialize(
     axiom_node_t *node,
     const axutil_env_t *env);
 
-axis2_status_t AXIS2_CALL
+/*axis2_status_t AXIS2_CALL
 load_policy_array(
         axutil_array_list_t *arraylist,
         axis2_char_t *file_name,
         const axutil_env_t *env);
+*/
+axis2_status_t AXIS2_CALL
+load_policy_array(
+        axutil_array_list_t *arraylist,
+        axiom_node_t *root,
+        const axutil_env_t *env);
+
+axiom_node_t * return_policy_element(axis2_char_t * name, const axutil_env_t * env, axis2_char_t * wsdl_name);
+
+axis2_char_t * get_policy_ref(axiom_node_t *node, const axutil_env_t * env);
+
+void get_all_policy(axis2_char_t * element_name, const axutil_env_t * env, axutil_array_list_t * policy_node_list, axis2_char_t *wsdl_name);
+
+
 
 neethi_policy_t *AXIS2_CALL
 merge_policylist(
@@ -30,16 +44,23 @@
     axis2_status_t status = AXIS2_FAILURE;
     int i = 0;
     axutil_array_list_t *policy_list = NULL;
+    axutil_array_list_t *policy_node_list = NULL;
     neethi_policy_t *resultant = NULL;
     axutil_allocator_t *allocator = axutil_allocator_init (NULL);
     axutil_error_t *error = axutil_error_create (allocator);
     const axutil_env_t *env = axutil_env_create_with_error(allocator, error);
 
     policy_list = axutil_array_list_create(env, 0);
+    policy_node_list = axutil_array_list_create(env, 0);
 
-    for(i=1; i<argc; i++)
+    get_all_policy(argv[1], env, policy_node_list, argv[2]);
+
+
+    for(i=0; i<axutil_array_list_size(policy_node_list, env); i++)
     {
-        status = load_policy_array(policy_list, argv[i], env);       
+        axiom_node_t *node = NULL;
+        node = (axiom_node_t *)axutil_array_list_get(policy_node_list, env, i);
+        status = load_policy_array(policy_list, node, env);       
     }        
         
     resultant = merge_policylist(policy_list, env);
@@ -115,7 +136,7 @@
         printf("\naxiom_node_serialize success\n");
         /* end serializing stuff */
 
-    /*axiom_node_free_tree(node1, environment);*/
+    /*axiom_node_free_tree(node1, env);*/
     output_buffer = (axis2_char_t*)axiom_xml_writer_get_xml(writer, env);
 
     printf("\nend test_om_serialize\n");
@@ -127,66 +148,186 @@
 axis2_status_t AXIS2_CALL
 load_policy_array(
         axutil_array_list_t *arraylist,
-        axis2_char_t *file_name,
+        axiom_node_t *root,
         const axutil_env_t *env)
 {
     
-    axiom_xml_reader_t *reader = NULL;
-    axiom_stax_builder_t *builder = NULL;
-    axiom_document_t *document = NULL;
-    axiom_node_t *root = NULL;
     axiom_element_t *root_ele = NULL;
         
-    reader = axiom_xml_reader_create_for_file(env, file_name, NULL);
+    if(root)
+    {
+        if(axiom_node_get_node_type(root, env) == AXIOM_ELEMENT)
+        {
+            root_ele = (axiom_element_t*)axiom_node_get_data_element(root, env);
+            if(root_ele)
+            {
+                neethi_policy_t *neethi_policy = NULL;
+                neethi_policy = neethi_engine_get_policy(env,root,root_ele);
+                if(!neethi_policy)
+                {
+                    printf("Policy Creation fails\n");
+                    return AXIS2_FAILURE;
+                }
+                axutil_array_list_add(arraylist, env, neethi_policy);
+            }
+        }
+    }
+    return AXIS2_SUCCESS;
+}
+
+
+axiom_node_t * return_policy_element(axis2_char_t * name, const axutil_env_t * env, axis2_char_t * wsdl_name)
+{
+    axiom_element_t *ele1 = NULL, *ele2 = NULL;
+    axiom_document_t *document = NULL;
+    axiom_node_t *node1 = NULL, *node2 = NULL, *policy_node = NULL;
+    axiom_namespace_t* ns = NULL;
+    axiom_xml_reader_t *reader = NULL;
+    axiom_stax_builder_t *builder = NULL;
+    char *buffer = NULL;
+    axiom_attribute_t *attr = NULL;
+    axis2_char_t * value = NULL;
+    axis2_char_t * val = NULL;
+    axutil_hash_t *attr_hash = NULL;
+    axis2_char_t *xml_output = NULL;
+    axutil_hash_index_t *hi;
+
+/*
+    f = fopen(wsdl_name, "r");
+    if (!f)
+        return NULL;
+
+    reader = axiom_xml_reader_create_for_io(env, read_input, NULL , NULL, NULL);
+*/
+    reader = axiom_xml_reader_create_for_file(env, wsdl_name, NULL);
 
     if (!reader)
     {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_CREATING_XML_STREAM_READER,
-                AXIS2_FAILURE);
-        printf("xml reader creation failed\n");
-        return AXIS2_FAILURE;
+        printf("ERROR CREATING PULLPARSER");
+        return NULL;
     }
 
     builder = axiom_stax_builder_create(env, reader);
-    if(!builder)
+
+    if (!builder)
     {
-        axiom_xml_reader_free(reader, env);
-        printf("Builder creation failed\n");
-        return AXIS2_FAILURE;
+        printf("ERROR CREATING PULL PARSER");
+        return NULL;
     }
+
     document = axiom_stax_builder_get_document(builder, env);
-    if(!document)
+    if (!document)
+        return NULL;
+
+    node1 = axiom_document_get_root_element(document, env);
+    if (!node1)
     {
+        printf(" root element null ");
         axiom_stax_builder_free(builder, env);
-        printf("Document creation failed\n");
-        return AXIS2_FAILURE;
+        return  NULL;
     }
 
-    /*root = axiom_document_get_root_element(document, env);*/
-    root = axiom_document_build_all(document, env);
-    if(!root)
+    do
     {
-        axiom_stax_builder_free(builder, env);
-        return AXIS2_FAILURE;
-    }
-    if(root)
+        node2 = axiom_document_build_next(document , env);
+
+        if (!node2)
+            break;
+
+        if (axiom_node_get_node_type(node2, env) == AXIOM_ELEMENT)
+        {
+            ele2 = (axiom_element_t*) axiom_node_get_data_element(node2, env);
+            attr_hash = axiom_element_get_all_attributes(ele2, env);
+            if (attr_hash)
+            {
+                hi = axutil_hash_first(attr_hash, env);
+                axutil_hash_this(hi, NULL, NULL, &attr);
+
+                if (axutil_strcmp(axiom_attribute_get_value(attr, env), name) == 0)
+                {
+                    policy_node = node2;
+                 }
+            }
+        }
+   }while (node2);
+   return policy_node;
+}
+
+axis2_char_t * get_policy_ref(axiom_node_t *node, const axutil_env_t * env)
+{
+    axiom_element_t *policy_element = NULL;
+    axiom_children_iterator_t *children_iter = NULL;
+    axiom_node_t *child_node = NULL;
+    axutil_qname_t *qname = NULL;
+    axis2_char_t * value = NULL;
+    axis2_char_t * val = NULL;
+    axiom_attribute_t * attr = NULL;
+
+    policy_element = (axiom_element_t *) axiom_node_get_data_element(node, env);
+    children_iter = axiom_element_get_children(policy_element, env, node);
+
+    while(axiom_children_iterator_has_next(children_iter, env))
     {
-        if(axiom_node_get_node_type(root, env) == AXIOM_ELEMENT)
+        child_node = axiom_children_iterator_next(children_iter, env);
+        if(axiom_node_get_node_type(child_node, env) == AXIOM_ELEMENT)
         {
-            root_ele = (axiom_element_t*)axiom_node_get_data_element(root, env);
-            if(root_ele)
+            policy_element = (axiom_element_t*) axiom_node_get_data_element(child_node, env);
+
+            if (axutil_strcmp(axiom_element_get_localname(policy_element, env), "PolicyReference") == 0)
             {
-                neethi_policy_t *neethi_policy = NULL;
-                neethi_policy = neethi_engine_get_policy(env,root,root_ele);
-                if(!neethi_policy)
+                qname = axutil_qname_create(env, "URI", NULL, NULL);
+                attr = axiom_element_get_attribute(policy_element, env, qname);
+
+                if (attr)
                 {
-                    printf("Policy Creation fails\n");
-                    return AXIS2_FAILURE;
+                    value = axiom_attribute_get_value(attr, env);
+                    val = axutil_string_substring_starting_at(value, 1);
+                    return val;
                 }
-                axutil_array_list_add(arraylist, env, neethi_policy);
             }
         }
     }
-    return AXIS2_SUCCESS;
+    return NULL;
+}
+
+
+void get_all_policy(axis2_char_t * element_name, const axutil_env_t * env, axutil_array_list_t * policy_node_list, axis2_char_t *wsdl_name)
+{
+    axutil_hash_t *attr_hash = NULL;
+    axutil_hash_index_t *hi = NULL;
+    axiom_element_t *element = NULL;
+    axiom_attribute_t *attribute = NULL;
+    axis2_char_t * attribute_val = NULL;
+    axiom_node_t * parent_policy_node = NULL, *parent_node = NULL;
+
+    parent_node = return_policy_element(element_name, env, wsdl_name);
+    if (!parent_node)
+        return;
+
+    parent_policy_node = return_policy_element(get_policy_ref(parent_node, env), env, wsdl_name);
+    axutil_array_list_add(policy_node_list, env, parent_policy_node);
+
+    if (axiom_node_get_node_type(parent_node, env) == AXIOM_ELEMENT)
+    {
+        element = (axiom_element_t*) axiom_node_get_data_element(parent_node, env);
+        attr_hash = axiom_element_get_all_attributes(element, env);
+        if (attr_hash)
+        {
+            hi = axutil_hash_next(env, axutil_hash_first(attr_hash, env));
+            do
+            {
+                if (hi)
+                {
+                    axutil_hash_this(hi, NULL, NULL, &attribute);
+                    attribute_val = axiom_attribute_get_value(attribute, env);
+                    attribute_val = axutil_rindex(attribute_val, ':');
+                    attribute_val = axutil_string_substring_starting_at(attribute_val,1);
+                    get_all_policy(attribute_val, env, policy_node_list, wsdl_name);
+                    hi = axutil_hash_next(env, hi);
+                }
+            }while (hi);
+        }
+    }
+    return;
 }
 

Modified: webservices/axis2/scratch/c/neethi/rampart/include/rampart_context.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/include/rampart_context.h?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/include/rampart_context.h (original)
+++ webservices/axis2/scratch/c/neethi/rampart/include/rampart_context.h Thu May 17 07:07:24 2007
@@ -418,6 +418,7 @@
         rp_property_t *token,
         int token_type,
         axis2_bool_t server_side,
+        axis2_bool_t is_inpath,
         const axutil_env_t *env);
     /*
         AXIS2_EXTERN axis2_char_t *AXIS2_CALL

Modified: webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo.c?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo.c Thu May 17 07:07:24 2007
@@ -65,8 +65,10 @@
     /* Setup options */
     options = axis2_options_create(env);
     axis2_options_set_to(options, env, endpoint_ref);
+    /*axis2_options_set_action(options, env,
+            "http://ws.apache.org/axis2/c/samples/sec_echo");*/
     axis2_options_set_action(options, env,
-            "http://ws.apache.org/axis2/c/samples/sec_echo");
+            "http://example.com/ws/2004/09/policy/Test/EchoRequest");
 
 
 
@@ -164,17 +166,20 @@
 {
     axiom_node_t *echo_om_node = NULL;
     axiom_element_t* echo_om_ele = NULL;
-    axiom_node_t* text_om_node = NULL;
-    axiom_element_t * text_om_ele = NULL;
+    /*axiom_node_t* text_om_node = NULL;*/
+    /*axiom_element_t * text_om_ele = NULL;*/
     axiom_namespace_t *ns1 = NULL;
     axis2_char_t *om_str = NULL;
 
-    ns1 = axiom_namespace_create(env, "http://ws.apache.org/axis2/c/samples", "ns1");
-    echo_om_ele = axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node);
+    ns1 = axiom_namespace_create(env, /*"http://ws.apache.org/axis2/c/samples"*/ "http://sample03.policy.samples.rampart.apache.org/xsd", "ns1");
+    echo_om_ele = axiom_element_create(env, NULL, /*"echoString"*/"EchoRequest", ns1, &echo_om_node);
     
     
-    text_om_ele = axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node);
-    axiom_element_set_text(text_om_ele, env, "echo5\n", text_om_node);
+    /*text_om_ele = axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node);*/
+    /*axiom_element_set_text(text_om_ele, env, "echo5\n", text_om_node);*/
+
+    /*axiom_element_set_text(echo_om_ele, env, "echo5", echo_om_node);*/
+    axiom_element_set_text(echo_om_ele, env, "Hello", echo_om_node);
 
     om_str = axiom_node_to_string(echo_om_node, env);
     if (om_str){

Modified: webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/policy.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/policy.xml?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/policy.xml (original)
+++ webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/policy.xml Thu May 17 07:07:24 2007
@@ -24,6 +24,7 @@
                     <sp:AlgorithmSuite>
                         <wsp:Policy>
                             <sp:Basic256Rsa15/>
+                            <!--sp:TripleDesRsa15/-->
                         </wsp:Policy>
                     </sp:AlgorithmSuite>
                     <sp:Layout>
@@ -32,14 +33,14 @@
                         </wsp:Policy>
                     </sp:Layout>
                     <sp:IncludeTimestamp/>
-                    <sp:EncryptBeforeSigning/>
+                    <!--sp:EncryptBeforeSigning/-->
                 </wsp:Policy>
             </sp:AsymmetricBinding>
-            <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+            <!--sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
             <wsp:Policy>
                 <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always"/>
             </wsp:Policy>
-            </sp:SignedSupportingTokens>
+            </sp:SignedSupportingTokens-->
             <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                 <wsp:Policy>
                     <sp:MustSupportRefKeyIdentifier/>
@@ -54,14 +55,14 @@
                 <sp:Body/>
             </sp:SignedParts>
             <rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
-                <rampc:User>Gampola</rampc:User>
+                <rampc:User>Bob</rampc:User>
                 <rampc:TimeToLive>360</rampc:TimeToLive>
                 <rampc:EncryptionUser>b</rampc:EncryptionUser>
                 <rampc:PasswordType>Digest</rampc:PasswordType>
-                <rampc:PasswordCallbackClass>/home/manjula/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
-                <rampc:ReceiverCertificate>/home/manjula/axis2/c/deploy/bin/samples/rampart/keys/ahome/b_cert.cert</rampc:ReceiverCertificate>
-                <rampc:Certificate>/home/manjula/axis2/c/deploy/bin/samples/rampart/keys/ahome/a_cert.cert</rampc:Certificate>
-                <rampc:PrivateKey>/home/manjula/axis2/c/deploy/bin/samples/rampart/keys/ahome/a_key.pem</rampc:PrivateKey>
+                <rampc:PasswordCallbackClass>/home/manjula/neethi/neethi/axis2c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+                <rampc:ReceiverCertificate>/home/manjula/neethi/neethi/rampart/samples/keys/ahome/bob_cert.cert</rampc:ReceiverCertificate>
+                <rampc:Certificate>/home/manjula/neethi/neethi/rampart/samples/keys/ahome/alice_cert.cert</rampc:Certificate>
+                <rampc:PrivateKey>/home/manjula/neethi/neethi/rampart/samples/keys/ahome/alice_key.pem</rampc:PrivateKey>
             </rampc:RampartConfig>
         </wsp:All>
     </wsp:ExactlyOne>

Modified: webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/encryption.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/encryption.c?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/encryption.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/encryption.c Thu May 17 07:07:24 2007
@@ -130,12 +130,14 @@
         unsigned char *decoded_data = NULL;/*Can be binary*/
         int decoded_len = -1;
         int enclen = -1;
+        int x=-1;
         oxs_buffer_t *decoded_buf = NULL;
 
         decoded_buf = oxs_buffer_create(env);
 
         /*First we need to base64 decode*/
-        decoded_data = AXIS2_MALLOC(env->allocator, axutil_base64_decode_len((char*)oxs_buffer_get_data(input, env)));
+        x =  axutil_base64_decode_len((const char*)oxs_buffer_get_data(input, env));
+        decoded_data = AXIS2_MALLOC(env->allocator, x);
         decoded_len = axutil_base64_decode_binary(decoded_data, (char*)oxs_buffer_get_data(input, env) );
         if (decoded_len < 0)
         {

Modified: webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_encryption.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_encryption.c?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_encryption.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_encryption.c Thu May 17 07:07:24 2007
@@ -351,6 +351,7 @@
     axiom_node_t *cd_node = NULL;
     axiom_node_t *cv_node = NULL;
     axis2_char_t *cipher_val = NULL;
+    axis2_char_t *new_cipher_val = NULL;
     axis2_char_t *sym_algo = NULL;
     axis2_char_t *type = NULL;
     axis2_char_t *id = NULL;
@@ -370,16 +371,20 @@
     /*Populate the context for future use*/
     oxs_ctx_set_enc_mtd_algorithm(enc_ctx, env, sym_algo);
     oxs_ctx_set_id(enc_ctx, env, id);
-    oxs_ctx_set_id(enc_ctx, env, type);
+    oxs_ctx_set_type(enc_ctx, env, type);
 
     /*Get the cipher value*/
     cd_node = oxs_axiom_get_first_child_node_by_name(env, enc_type_node, OXS_NODE_CIPHER_DATA,OXS_ENC_NS,OXS_XENC);
     cv_node = oxs_axiom_get_first_child_node_by_name(env, cd_node, OXS_NODE_CIPHER_VALUE,OXS_ENC_NS,OXS_XENC);
     cipher_val = oxs_token_get_cipher_value(env, cv_node);
 
+    /*NEW CODE*/
+    new_cipher_val = oxs_util_get_newline_removed_string(env, cipher_val);
+
+    /*eof NEW CODE*/
     /*Create input buffer with cipher data obtained*/
     input_buf = oxs_buffer_create(env);
-    oxs_buffer_populate(input_buf, env, (unsigned char*)cipher_val, axutil_strlen(cipher_val) );
+    oxs_buffer_populate(input_buf, env, (unsigned char*)new_cipher_val, axutil_strlen(new_cipher_val) );
 
     /*Decrypt*/
     oxs_ctx_set_operation(enc_ctx, env, OXS_CTX_OPERATION_DECRYPT);

Modified: webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_signature.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_signature.c?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_signature.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/omxmlsec/xml_signature.c Thu May 17 07:07:24 2007
@@ -332,17 +332,22 @@
                 axutil_array_list_add(tr_list, env, tr);
             }else{
                 /*<ds:Transforms> cant have any other element*/
-                oxs_error(env, ERROR_LOCATION, OXS_ERROR_TRANSFORM_FAILED,"<ds:Transforms> cannot have node %s ", node_name );
-                return AXIS2_FAILURE;
+                /*NOTE: Removed this check for interop testing*/
+                /*oxs_error(env, ERROR_LOCATION, OXS_ERROR_TRANSFORM_FAILED,"<ds:Transforms> cannot have node %s ", node_name );
+                return AXIS2_FAILURE;*/
             }
-            /*Set the next node to be precessed*/
+            /*Set the next node to be processed*/
             tr_node = axiom_node_get_next_sibling(tr_node, env);
+            /*axiom_util_get_next_sibling_element(axiom_node_get_data_element(tr_node, env), env, 
+                                                            tr_node, &tr_node);*/
         }/*eof while*/
         /*Set transforms for this signature part*/
         oxs_sign_part_set_transforms(sign_part, env, tr_list);
 
         /*At the end, set the next node as the child node*/
-        child_node = axiom_node_get_next_sibling(child_node, env);
+        /*child_node = axiom_node_get_next_sibling(child_node, env);*/
+        axiom_util_get_next_sibling_element(axiom_node_get_data_element(child_node, env), env,
+                                                                            child_node, &child_node);
     }else{
         /*There are no transforms for this sign part*/
     }
@@ -356,7 +361,9 @@
         oxs_sign_part_set_digest_mtd(sign_part, env, digest_mtd);
 
         /*At the end, set the next node as the child node*/
-        child_node = axiom_node_get_next_sibling(child_node, env);
+        /*child_node = axiom_node_get_next_sibling(child_node, env);*/
+        axiom_util_get_next_sibling_element(axiom_node_get_data_element(child_node, env), env,
+                                            child_node, &child_node);
     }else{
         oxs_error(env, ERROR_LOCATION, OXS_ERROR_SIG_VERIFICATION_FAILED,"Cannot find <ds:DigestMethod> " );
         return AXIS2_FAILURE;
@@ -449,12 +456,16 @@
             /*We do not process*/
         }
         cur_node = axiom_node_get_next_sibling(cur_node, env);
+        /*axiom_util_get_next_sibling_element(axiom_node_get_data_element(cur_node, env), env,
+                                                                            cur_node, &cur_node);*/
     }
 
     oxs_sign_ctx_set_sign_parts(sign_ctx, env, sign_part_list);
     /*Finished processing SignedInfo. Now we are processing the Signature Value element*/
     /*The very next child of SignedInfo Should be the ds:SignatureValue*/
-    sig_val_node = axiom_node_get_next_sibling(signed_info_node, env);
+    /*sig_val_node = axiom_node_get_next_sibling(signed_info_node, env);*/
+    axiom_util_get_next_sibling_element(axiom_node_get_data_element(signed_info_node, env), env,
+                                                                        signed_info_node, &sig_val_node);
     if(0 == axutil_strcmp( OXS_NODE_SIGNATURE_VALUE, axiom_util_get_localname(sig_val_node, env))){
         axis2_char_t *sig_val = NULL;
         axis2_char_t *newline_removed = NULL;

Modified: webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_context.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_context.c?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_context.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_context.c Thu May 17 07:07:24 2007
@@ -1907,6 +1907,7 @@
     rp_property_t *token,
     int token_type,
     axis2_bool_t server_side,
+    axis2_bool_t is_inpath,
     const axutil_env_t *env)
 {
     axis2_char_t *inclusion = NULL;
@@ -1919,14 +1920,27 @@
         inclusion = rp_x509_token_get_inclusion(x509_token,env);
 
         if(server_side)
-            include = ((axutil_strcmp(inclusion,RP_INCLUDE_ALWAYS)==0)||
+        {
+            if(is_inpath)
+            {
+                include = ((axutil_strcmp(inclusion,RP_INCLUDE_ALWAYS)==0)||
                        (axutil_strcmp(inclusion,RP_INCLUDE_ONCE)==0)||
                        (axutil_strcmp(inclusion,RP_INCLUDE_ALWAYS_TO_RECIPIENT)==0));
+            }
+            else
+                include = (axutil_strcmp(inclusion,RP_INCLUDE_ALWAYS)==0);
+        }
         else
-            include = ((axutil_strcmp(inclusion,RP_INCLUDE_ALWAYS)==0)||
+        {            
+            if(!is_inpath)
+            {    
+                include = ((axutil_strcmp(inclusion,RP_INCLUDE_ALWAYS)==0)||
                        (axutil_strcmp(inclusion,RP_INCLUDE_ONCE)==0)||
                        (axutil_strcmp(inclusion,RP_INCLUDE_ALWAYS_TO_RECIPIENT)==0));
-
+            }
+            else
+                include = (axutil_strcmp(inclusion,RP_INCLUDE_ALWAYS)==0);
+        }
         return include;
     }
     else

Modified: webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_encryption.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_encryption.c?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_encryption.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_encryption.c Thu May 17 07:07:24 2007
@@ -167,7 +167,7 @@
     /*First we should check whether we include the token in the
      *message.*/
 
-    if(rampart_context_is_token_include(rampart_context,token,token_type,server_side,env))
+    if(rampart_context_is_token_include(rampart_context,token,token_type,server_side,AXIS2_FALSE,env))
     {
         eki = RAMPART_STR_DIRECT_REFERENCE;
     }

Modified: webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_sec_header_processor.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_sec_header_processor.c?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_sec_header_processor.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_sec_header_processor.c Thu May 17 07:07:24 2007
@@ -568,7 +568,7 @@
         AXIS2_LOG_INFO(env->log,"[rampart][shp] We still do not support derived keys");
         return AXIS2_FAILURE;
     }
-    is_include_token = rampart_context_is_token_include(rampart_context,token,token_type,server_side,env);
+    is_include_token = rampart_context_is_token_include(rampart_context,token,token_type,server_side,AXIS2_TRUE,env);
 
     key_info_node = oxs_axiom_get_first_child_node_by_name(env, sig_node,
                     OXS_NODE_KEY_INFO,OXS_DSIG_NS, OXS_DS );

Modified: webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_signature.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_signature.c?view=diff&rev=538931&r1=538930&r2=538931
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_signature.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_signature.c Thu May 17 07:07:24 2007
@@ -202,7 +202,7 @@
     }
     /*If the requirement is to include the token we should build the binary security
      * token element here.*/
-    if(rampart_context_is_token_include(rampart_context,token,token_type,server_side,env))
+    if(rampart_context_is_token_include(rampart_context,token,token_type,server_side, AXIS2_FALSE, env))
     {
         axis2_char_t *bst_data = NULL;
 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org