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