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/14 13:38:09 UTC

svn commit: r537783 - in /webservices/axis2/scratch/c/neethi: axis2c/include/axis2_conf.h axis2c/neethi/src/engine.c axis2c/src/core/engine/conf.c rampart/src/util/rampart_neethi.c

Author: manjula
Date: Mon May 14 04:38:08 2007
New Revision: 537783

URL: http://svn.apache.org/viewvc?view=rev&rev=537783
Log:
Storing the rampart context in axis2_conf.

Modified:
    webservices/axis2/scratch/c/neethi/axis2c/include/axis2_conf.h
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c
    webservices/axis2/scratch/c/neethi/axis2c/src/core/engine/conf.c
    webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_neethi.c

Modified: webservices/axis2/scratch/c/neethi/axis2c/include/axis2_conf.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/include/axis2_conf.h?view=diff&rev=537783&r1=537782&r2=537783
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/include/axis2_conf.h (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/include/axis2_conf.h Mon May 14 04:38:08 2007
@@ -667,6 +667,18 @@
         const axutil_env_t *env,
         axis2_bool_t enable_security);
 
+    AXIS2_EXTERN void* AXIS2_CALL
+    axis2_conf_get_security_context(
+        axis2_conf_t *conf,
+        const axutil_env_t *env);
+
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    axis2_conf_set_security_context(
+        axis2_conf_t *conf,
+        const axutil_env_t *env,
+        void* security_context);
+
+
     AXIS2_EXTERN axutil_param_container_t *AXIS2_CALL
     axis2_conf_get_param_container(const axis2_conf_t *conf,
         const axutil_env_t *env);

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c?view=diff&rev=537783&r1=537782&r2=537783
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c Mon May 14 04:38:08 2007
@@ -683,30 +683,6 @@
                 axutil_array_list_add(child_component_list, env, exactlyone);
             }                
         }
-        
-        else if(component_type == OPERATOR_TYPE_REFERENCE)
-        {
-            axis2_char_t *uri = NULL;
-            neethi_reference_t *pol_ref = NULL;
-            neethi_policy_t *neethi_policy = NULL;
-
-            pol_ref = (neethi_reference_t *)neethi_operator_get_value(child_component,env);
-            uri = neethi_reference_get_uri(pol_ref,env);
-            if(uri)
-            {
-                neethi_policy = neethi_registry_lookup(registry,env,uri);
-                if(neethi_policy)
-                {
-                    neethi_operator_set_value(child_component,env,neethi_policy,OPERATOR_TYPE_POLICY);
-                    component_type = OPERATOR_TYPE_POLICY;
-                }
-                else
-                {
-                    printf("Cannot Resolve the location\n");
-                    return NULL;
-                }    
-            }    
-        }
         else if(component_type == OPERATOR_TYPE_POLICY)
         {
             neethi_policy_t *neethi_policy = NULL;
@@ -729,6 +705,11 @@
             neethi_reference_t *policy_ref = NULL;
             axis2_char_t *uri = NULL;
             neethi_policy_t *policy = NULL;
+            neethi_all_t *all = NULL;
+            axutil_array_list_t *children = NULL;
+            neethi_operator_t *to_normalize = NULL;
+            neethi_exactlyone_t *exactlyone = NULL;
+
             policy_ref = (neethi_reference_t *)neethi_operator_get_value(child_component, env);
             uri = neethi_reference_get_uri(policy_ref, env);
             if(!uri)
@@ -743,6 +724,15 @@
                 return NULL;
             }  
             neethi_operator_set_value(child_component, env, policy, OPERATOR_TYPE_POLICY);
+
+            all = neethi_all_create(env);
+            policy = (neethi_policy_t *)neethi_operator_get_value(child_component,env);
+            children =  neethi_policy_get_policy_components(policy,env);
+            neethi_all_add_policy_components(all,children,env);
+            to_normalize = neethi_operator_create(env);
+            neethi_operator_set_value(to_normalize,env,all,OPERATOR_TYPE_ALL);
+            exactlyone = normalize_operator(to_normalize,registry,deep,env);
+            axutil_array_list_add(child_component_list,env,exactlyone);
         }            
         else
         {

Modified: webservices/axis2/scratch/c/neethi/axis2c/src/core/engine/conf.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/src/core/engine/conf.c?view=diff&rev=537783&r1=537782&r2=537783
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/src/core/engine/conf.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/src/core/engine/conf.c Mon May 14 04:38:08 2007
@@ -57,6 +57,9 @@
     axutil_param_container_t *param_container;
     /** base description struct */
     axis2_desc_t *base;
+
+    /* this is a hack to keep rampart_context at client side*/
+    void *security_context;
 };
 
 AXIS2_EXTERN axis2_conf_t *AXIS2_CALL
@@ -99,6 +102,7 @@
     conf->enable_mtom = AXIS2_FALSE;
     conf->enable_security = AXIS2_FALSE;
     conf->base = NULL;
+    conf->security_context = NULL;
 
     conf->param_container = (axutil_param_container_t *)
             axutil_param_container_create(env);
@@ -1589,6 +1593,28 @@
     conf->enable_security = enable_security;
     return AXIS2_SUCCESS;
 }
+
+AXIS2_EXTERN void* AXIS2_CALL
+axis2_conf_get_security_context(
+    axis2_conf_t *conf,
+    const axutil_env_t *env)
+{
+    return conf->security_context;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axis2_conf_set_security_context(
+    axis2_conf_t *conf,
+    const axutil_env_t *env,
+    void* security_context)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, conf, AXIS2_FAILURE);
+
+    conf->security_context = (void *)security_context;
+    return AXIS2_SUCCESS;
+}
+
 
 AXIS2_EXTERN axutil_param_container_t *AXIS2_CALL
 axis2_conf_get_param_container(const axis2_conf_t *conf,

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=537783&r1=537782&r2=537783
==============================================================================
--- webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_neethi.c (original)
+++ webservices/axis2/scratch/c/neethi/rampart/src/util/rampart_neethi.c Mon May 14 04:38:08 2007
@@ -31,6 +31,7 @@
 #include <rampart_constants.h>
 #include <rampart_callback.h>
 #include <axis2_msg.h>
+#include <axis2_conf_ctx.h>
 
 /*This method sets all the configurations
  loads required modules and start rampart.*/
@@ -56,14 +57,37 @@
     axis2_status_t status = AXIS2_SUCCESS;
     axis2_op_t *op = NULL;
     axis2_msg_t *msg = NULL;
+    axis2_conf_t *conf = NULL;
+    struct axis2_conf_ctx *conf_ctx = NULL;
 
+
+    conf_ctx =  axis2_msg_ctx_get_conf_ctx(msg_ctx,env);
+    if(!conf_ctx)
+    {
+        AXIS2_LOG_INFO(env->log, "[rampart][rhu] Conf context is NULL ");
+        return NULL;
+    }
+    conf =  axis2_conf_ctx_get_conf(conf_ctx, env);
+    if(!conf)
+    {
+        AXIS2_LOG_INFO(env->log, "[rampart][rhu] Cannot get the axis2 conf from conf context. ");
+        return NULL;
+    }
+    
     svc =  axis2_msg_ctx_get_svc(msg_ctx,env);
     if(!svc)
     {
-        AXIS2_LOG_INFO(env->log, "[rampart][rampart_neethi] Service is NULL.");
-        return NULL;
+        rampart_context = (rampart_context_t *)axis2_conf_get_security_context(conf, env);
+        if(rampart_context)
+            return rampart_context;
+        
+        else
+        {
+            AXIS2_LOG_INFO(env->log, "[rampart][rampart_neethi] Service is NULL.");
+            return NULL;
+        }
     }
-
+                        
     op = axis2_msg_ctx_get_op(msg_ctx, env);
     if(!op)
     {
@@ -147,10 +171,12 @@
         if(authn_provider)
             rampart_context_set_authn_provider(rampart_context,env,authn_provider);
     }
-    return rampart_context;
     
+    if(!axis2_msg_ctx_get_server_side(msg_ctx, env))
+    {
+        axis2_conf_set_security_context(conf, env, rampart_context);        
+    }        
 
-
-    return rampart_context; 
+    return rampart_context;
 }
 



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