You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ma...@apache.org on 2007/05/07 05:36:00 UTC

svn commit: r535725 - in /webservices/axis2/scratch/c/neethi: axis2c/neethi/src/secpolicy/builder/ axis2c/src/core/description/ rampart/include/ rampart/samples/client/sec_echo/ rampart/src/handlers/ rampart/src/util/

Author: manjula
Date: Sun May  6 20:35:59 2007
New Revision: 535725

URL: http://svn.apache.org/viewvc?view=rev&rev=535725
Log:
Uploading the client side policy attaching and message level policy picking.

Added:
    webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.c
    webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.h
    webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/policy.xml
Modified:
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/wss10_builder.c
    webservices/axis2/scratch/c/neethi/axis2c/src/core/description/desc.c
    webservices/axis2/scratch/c/neethi/axis2c/src/core/description/policy_include.c
    webservices/axis2/scratch/c/neethi/rampart/include/rampart_neethi.h
    webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/Makefile.am
    webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo.c
    webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_in_handler.c
    webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_out_handler.c
    webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_neethi.c

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/wss10_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/wss10_builder.c?view=diff&rev=535725&r1=535724&r2=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/wss10_builder.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/wss10_builder.c Sun May  6 20:35:59 2007
@@ -101,26 +101,22 @@
         value = neethi_assertion_get_value(assertion, env);
         type = neethi_assertion_get_type(assertion, env);
 
-        if(value)
+        if(type == ASSERTION_TYPE_MUST_SUPPORT_REF_KEY_IDENTIFIER)
         {
-            if(type == ASSERTION_TYPE_MUST_SUPPORT_REF_KEY_IDENTIFIER)
-            {
-                rp_wss10_set_must_support_ref_key_identifier(wss10,env,AXIS2_TRUE);
-            }
-            else if(type == ASSERTION_TYPE_MUST_SUPPORT_REF_ISSUER_SERIAL)
-            {
-                rp_wss10_set_must_support_ref_issuer_serial(wss10,env,AXIS2_TRUE);
-            }
-            else if(type == ASSERTION_TYPE_MUST_SUPPORT_REF_EXTERNAL_URI)
-            {
-                rp_wss10_set_must_support_ref_external_uri(wss10,env,AXIS2_TRUE);
-            }
-            else if(type == ASSERTION_TYPE_MUST_SUPPORT_REF_EMBEDDED_TOKEN)
-            {
-                rp_wss10_set_must_support_ref_embedded_token(wss10,env,AXIS2_TRUE);
-            }                
-            else return AXIS2_FAILURE;
-        }        
+            rp_wss10_set_must_support_ref_key_identifier(wss10,env,AXIS2_TRUE);
+        }
+        else if(type == ASSERTION_TYPE_MUST_SUPPORT_REF_ISSUER_SERIAL)
+        {
+            rp_wss10_set_must_support_ref_issuer_serial(wss10,env,AXIS2_TRUE);
+        }
+        else if(type == ASSERTION_TYPE_MUST_SUPPORT_REF_EXTERNAL_URI)
+        {
+            rp_wss10_set_must_support_ref_external_uri(wss10,env,AXIS2_TRUE);
+        }
+        else if(type == ASSERTION_TYPE_MUST_SUPPORT_REF_EMBEDDED_TOKEN)
+        {
+            rp_wss10_set_must_support_ref_embedded_token(wss10,env,AXIS2_TRUE);
+        }                
         else return AXIS2_FAILURE;
     }
     return AXIS2_SUCCESS;

Modified: webservices/axis2/scratch/c/neethi/axis2c/src/core/description/desc.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/src/core/description/desc.c?view=diff&rev=535725&r1=535724&r2=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/src/core/description/desc.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/src/core/description/desc.c Sun May  6 20:35:59 2007
@@ -240,7 +240,8 @@
 {
     if (!desc->policy_include)
     {
-        desc->policy_include = axis2_policy_include_create(env);
+        /*desc->policy_include = axis2_policy_include_create(env);*/
+        desc->policy_include = axis2_policy_include_create_with_desc(env, desc);
     }
     return desc->policy_include;
 }

Modified: webservices/axis2/scratch/c/neethi/axis2c/src/core/description/policy_include.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/src/core/description/policy_include.c?view=diff&rev=535725&r1=535724&r2=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/src/core/description/policy_include.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/src/core/description/policy_include.c Sun May  6 20:35:59 2007
@@ -356,8 +356,13 @@
         {
             if (axis2_policy_include_get_policy(policy_include, env)) 
             {
-                result = (neethi_policy_t*) neethi_engine_merge(env, parent_policy,
-                    axis2_policy_include_get_policy(policy_include, env));
+                neethi_policy_t *temp_policy = NULL;
+                parent_policy = (neethi_policy_t *)neethi_engine_get_normalize(env, AXIS2_FALSE, parent_policy);
+                temp_policy = axis2_policy_include_get_policy(policy_include, env);
+                temp_policy =  (neethi_policy_t *)neethi_engine_get_normalize(env, AXIS2_FALSE, temp_policy);
+              /* result = (neethi_policy_t*) neethi_engine_merge(env, parent_policy,
+                    axis2_policy_include_get_policy(policy_include, env));*/
+                result = (neethi_policy_t*) neethi_engine_merge(env,parent_policy, temp_policy);
 
             } 
             else 

Modified: webservices/axis2/scratch/c/neethi/rampart/include/rampart_neethi.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/include/rampart_neethi.h?view=diff&rev=535725&r1=535724&r2=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/include/rampart_neethi.h (original)
+++ webservices/axis2/scratch/c/neethi/rampart/include/rampart_neethi.h Sun May  6 20:35:59 2007
@@ -36,7 +36,8 @@
     AXIS2_EXTERN rampart_context_t *AXIS2_CALL
     rampart_neethi_build_configuration(
         const axutil_env_t *env,
-        axis2_msg_ctx_t *msg_ctx);
+        axis2_msg_ctx_t *msg_ctx,
+        axis2_bool_t is_inflow);
 
 #ifdef __cplusplus
 }

Modified: webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/Makefile.am?view=diff&rev=535725&r1=535724&r2=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/Makefile.am (original)
+++ webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/Makefile.am Sun May  6 20:35:59 2007
@@ -3,12 +3,13 @@
 prgbin_PROGRAMS = echo
 #samplesdir=$(prefix)/samples/client/echo
 #samples_DATA=echo.c README.txt Makefile.am Makefile.in
-echo_SOURCES = echo.c
+echo_SOURCES = echo.c echo_helper.c
 
 echo_LDADD   = $(LDFLAGS) \
                     -L$(AXIS2C_HOME)/lib \
 					-laxutil \
                     -laxis2_axiom \
+					-lneethi \
                     -laxis2_engine \
                     -laxis2_parser \
                     -lpthread \
@@ -18,6 +19,7 @@
                     $(LIBXML2_LIBS)
 
 INCLUDES = -I$(AXIS2C_HOME)/include/axis2-1.0 \
+		   -I$(AXIS2C_HOME)/include/neethi-0.1 \
             -I ../../../include \
 			@UTILINC@ \
 			@AXIOMINC@

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=535725&r1=535724&r2=535725
==============================================================================
--- 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 Sun May  6 20:35:59 2007
@@ -21,7 +21,7 @@
 #include <axiom_soap.h>
 #include <axis2_client.h>
 #include <rampart_constants.h>
-
+#include "echo_helper.h"
 
 axiom_node_t *
 build_om_payload_for_echo_svc(const axutil_env_t *env);
@@ -37,6 +37,7 @@
     axis2_svc_client_t* svc_client = NULL;
     axiom_node_t *payload = NULL;
     axiom_node_t *ret_node = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
     /* Set up the environment */
     env = axutil_env_create_all("echo.log", AXIS2_LOG_LEVEL_TRACE);
 
@@ -107,6 +108,13 @@
     /* Set service client options */
     axis2_svc_client_set_options(svc_client, env, options);
 
+    status = echo_helper_set_policy(svc_client, env);
+
+    if(status == AXIS2_FAILURE)
+    {
+        printf("policy setting failed\n");
+        return 0;
+    }
 
     /* Build the SOAP request message payload using OM API.*/
     payload = build_om_payload_for_echo_svc(env);

Added: webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.c?view=auto&rev=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.c (added)
+++ webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.c Sun May  6 20:35:59 2007
@@ -0,0 +1,98 @@
+#include <axiom.h>
+#include <axutil_utils.h>
+#include <axutil_env.h>
+#include <axutil_log_default.h>
+#include <axutil_error_default.h>
+#include <stdio.h>
+#include <axiom_xml_reader.h>
+#include <neethi_engine.h>
+#include <axis2_policy_include.h>
+#include "echo_helper.h"
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+echo_helper_set_policy(axis2_svc_client_t* svc_client,
+    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;
+    axis2_svc_t *svc = NULL;
+    axis2_desc_t *desc = NULL;
+    axis2_policy_include_t *policy_include = NULL;
+
+    reader = axiom_xml_reader_create_for_file(env, "policy.xml", 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;
+    }
+    
+    builder = axiom_stax_builder_create(env, reader);
+    if(!builder)
+    {
+        axiom_xml_reader_free(reader, env);
+        printf("Builder creation failed\n");
+        return AXIS2_FAILURE;
+    }
+    document = axiom_stax_builder_get_document(builder, env);
+    if(!document)
+    {
+        axiom_stax_builder_free(builder, env);
+        printf("Document creation failed\n");
+        return AXIS2_FAILURE;
+    }
+
+    root = axiom_document_build_all(document, env);
+    if(!root)
+    {
+        axiom_stax_builder_free(builder, env);
+        return AXIS2_FAILURE;
+    }
+
+    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;
+                }
+                svc = axis2_svc_client_get_svc(svc_client, env);
+                if(!svc)
+                {
+                    printf("service is NULL\n");
+                    return AXIS2_FAILURE;
+                }                    
+                desc = axis2_svc_get_base(svc, env);
+                if(!desc)
+                {
+                    printf("Description is NULL\n");
+                    return AXIS2_FAILURE;
+                }
+                policy_include = axis2_desc_get_policy_include(desc, env);
+                if(!policy_include)
+                {
+                    printf("Policy include is NULL");
+                    return AXIS2_FAILURE;
+                }    
+                axis2_policy_include_add_policy_element(policy_include, env, AXIS2_SERVICE_POLICY, neethi_policy);
+            }
+        }
+    }
+    printf("Successful\n");
+    return AXIS2_SUCCESS;
+}
+
+

Added: webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.h?view=auto&rev=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.h (added)
+++ webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/echo_helper.h Sun May  6 20:35:59 2007
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef ECHO_HELPER_H
+#define ECHO_HELPER_H
+
+
+#include <axis2_svc_client.h>
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+echo_helper_set_policy(axis2_svc_client_t* svc_client,
+    const axutil_env_t *env);
+
+
+#endif /* ECHO_HELPER*/

Added: 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=auto&rev=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/policy.xml (added)
+++ webservices/axis2/scratch/c/neethi/rampart/samples/client/sec_echo/policy.xml Sun May  6 20:35:59 2007
@@ -0,0 +1,68 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+    <wsp:ExactlyOne>
+        <wsp:All>
+            <sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+                <wsp:Policy>
+                    <sp:InitiatorToken>
+                        <wsp:Policy>
+                            <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always">
+                                <wsp:Policy>
+                                    <sp:WssX509V3Token10/>
+                                </wsp:Policy>
+                            </sp:X509Token>
+                        </wsp:Policy>
+                    </sp:InitiatorToken>
+                    <sp:RecipientToken>
+                        <wsp:Policy>
+                            <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always">
+                                <wsp:Policy>
+                                    <sp:WssX509V3Token10/>
+                                </wsp:Policy>
+                            </sp:X509Token>
+                        </wsp:Policy>
+                    </sp:RecipientToken>
+                    <sp:AlgorithmSuite>
+                        <wsp:Policy>
+                            <sp:Basic256Rsa15/>
+                        </wsp:Policy>
+                    </sp:AlgorithmSuite>
+                    <sp:Layout>
+                        <wsp:Policy>
+                            <sp:Strict/>
+                        </wsp:Policy>
+                    </sp:Layout>
+                    <sp:IncludeTimestamp/>
+                    <sp:EncryptBeforeSigning/>
+                </wsp:Policy>
+            </sp:AsymmetricBinding>
+            <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:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+                <wsp:Policy>
+                    <sp:MustSupportRefKeyIdentifier/>
+                    <sp:MustSupportRefEmbeddedToken/>
+                    <sp:MustSupportRefIssuerSerial/>
+                </wsp:Policy>
+            </sp:Wss10>
+            <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+                <sp:Body/>
+            </sp:EncryptedParts>
+            <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+                <sp:Body/>
+            </sp:SignedParts>
+            <rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
+                <rampc:User>Gampola</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:RampartConfig>
+        </wsp:All>
+    </wsp:ExactlyOne>
+</wsp:Policy>

Modified: webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_in_handler.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_in_handler.c?view=diff&rev=535725&r1=535724&r2=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_in_handler.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_in_handler.c Sun May  6 20:35:59 2007
@@ -125,12 +125,16 @@
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
 				"[rampart][rampart_in_handler] Unable to set the security processed results");
     }
-    rampart_context = rampart_neethi_build_configuration(env, msg_ctx);
-/*
-    rampart_context = rampart_engine_init(env,msg_ctx,AXIS2_TRUE);
+    rampart_context = rampart_neethi_build_configuration(env, msg_ctx, AXIS2_TRUE);
+
+/*  rampart_context = rampart_engine_init(env,msg_ctx,AXIS2_TRUE);*/
+
     if(!rampart_context)
+    {        
+        AXIS2_LOG_INFO(env->log, "[rampart][rampart_in_handler] ramaprt_context creation failed.");
         return AXIS2_FAILURE;
-*/
+    }
+
     status = rampart_shp_process_message(env, msg_ctx, rampart_context, 
 						soap_envelope, sec_node);
     

Modified: webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_out_handler.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_out_handler.c?view=diff&rev=535725&r1=535724&r2=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_out_handler.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/handlers/rampart_out_handler.c Sun May  6 20:35:59 2007
@@ -30,7 +30,7 @@
 #include <rampart_encryption.h>
 #include <rampart_sec_header_builder.h>
 #include <rampart_context.h>
-
+#include <rampart_neethi.h>
 /*********************** Function headers *********************************/
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
@@ -120,6 +120,15 @@
             AXIS2_LOG_INFO(env->log, "[rampart][rampart_out_handler] Not intended for processing in Rampart");            
             return AXIS2_SUCCESS;
         }
+
+        rampart_context = rampart_neethi_build_configuration(env, msg_ctx, AXIS2_FALSE);
+
+        if(!rampart_context)
+        {
+            AXIS2_LOG_INFO(env->log, "[rampart][rampart_out_handler] ramaprt_context creation failed.");
+            return AXIS2_FAILURE;
+        }
+
 /*
         rampart_context = rampart_engine_init(env,msg_ctx,AXIS2_FALSE);
         if(!rampart_context)

Modified: webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_neethi.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_neethi.c?view=diff&rev=535725&r1=535724&r2=535725
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_neethi.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_neethi.c Sun May  6 20:35:59 2007
@@ -30,7 +30,7 @@
 #include <rampart_util.h>
 #include <rampart_constants.h>
 #include <rampart_callback.h>
-
+#include <axis2_msg.h>
 
 /*This method sets all the configurations
  loads required modules and start rampart.*/
@@ -39,7 +39,8 @@
 AXIS2_EXTERN rampart_context_t *AXIS2_CALL 
 rampart_neethi_build_configuration(
         const axutil_env_t *env,
-        axis2_msg_ctx_t *msg_ctx)
+        axis2_msg_ctx_t *msg_ctx,
+        axis2_bool_t is_inflow)
 {
 
     axis2_svc_t *svc = NULL;
@@ -53,6 +54,8 @@
     axis2_char_t *pwcb_module_name = NULL;
     axis2_char_t *authn_provider_name = NULL;
     axis2_status_t status = AXIS2_SUCCESS;
+    axis2_op_t *op = NULL;
+    axis2_msg_t *msg = NULL;
 
     svc =  axis2_msg_ctx_get_svc(msg_ctx,env);
     if(!svc)
@@ -61,7 +64,30 @@
         return NULL;
     }
 
-    desc = axis2_svc_get_base(svc, env);
+    op = axis2_msg_ctx_get_op(msg_ctx, env);
+    if(!op)
+    {
+        AXIS2_LOG_INFO(env->log, "[rampart][rampart_neethi] Operation is NULL.");
+        return NULL;
+    }        
+    
+    if(is_inflow)
+    {
+        msg = axis2_op_get_msg(op, env, "in");
+    }
+    else
+    {
+        msg = axis2_op_get_msg(op, env, "out");
+    }        
+
+    if(!msg)
+    {
+        AXIS2_LOG_INFO(env->log, "[rampart][rampart_neethi] Message is NULL.");
+        return NULL;
+    }
+    
+    /*desc = axis2_svc_get_base(svc, env);*/
+    desc = axis2_msg_get_base(msg, env);
     if(!desc)
     {
         AXIS2_LOG_INFO(env->log, "[rampart][rampart_neethi] axis2 description is NULL.");



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