WSO2-WSF-Perl
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
WSFC_wrap.c view on Meta::CPAN
}
nodes[count++] = om_node;
do {
if (axiom_node_get_node_type(om_node, env) == AXIOM_TEXT) {
axiom_text_t *text = NULL;
axiom_data_handler_t *data_handler = NULL;
text = (axiom_text_t*)axiom_node_get_data_element(om_node, env);
if(text) {
data_handler = axiom_text_get_data_handler (text, env);
if (data_handler) {
axiom_text_set_optimize(text, env, AXIS2_FALSE);
}
}
}
temp_node = axiom_node_get_first_child(om_node, env);
if (temp_node)
{
om_node = temp_node;
nodes[count++] = om_node;
}
else
{
temp_node = axiom_node_get_next_sibling(om_node, env);
if (temp_node)
{
om_node = temp_node;
nodes[count -1] = om_node;
}
else
{
while (count > 1 && !temp_node)
{
count--;
om_node = nodes[count -1];
temp_node = axiom_node_get_next_sibling(om_node, env);
}
if (temp_node && count > 1)
{
om_node = temp_node;
nodes[count -1] = om_node;
}
else
{
count--;
}
}
}
} while(count > 0);
return;
}
void wsf_set_security_data_to_rampart_context(axutil_env_t *env,
rampart_context_t *rampart_context,
axis2_char_t *private_key,
axis2_char_t *certificate,
axis2_char_t *receiver_certificate,
axis2_char_t *user,
axis2_char_t *password,
axis2_char_t *password_type,
int ttl)
{
if (NULL != private_key) {
if (rampart_context_set_prv_key(rampart_context, env, (void *) private_key) == AXIS2_SUCCESS)
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy] setting pvt key ");
if (rampart_context_set_prv_key_type(rampart_context, env, AXIS2_KEY_TYPE_PEM) == AXIS2_SUCCESS)
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy] setting pvt key format ");
}
if (NULL != certificate) {
if (rampart_context_set_certificate(rampart_context, env, (void *)certificate) == AXIS2_SUCCESS)
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy] setting pub key");
if (rampart_context_set_certificate_type(rampart_context, env, AXIS2_KEY_TYPE_PEM) == AXIS2_SUCCESS)
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy] setting pub key type");
}
if (NULL != receiver_certificate) {
if (rampart_context_set_receiver_certificate(rampart_context, env, receiver_certificate) == AXIS2_SUCCESS)
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy] setting receiver pub key");
if (rampart_context_set_receiver_certificate_type(rampart_context, env, AXIS2_KEY_TYPE_PEM) == AXIS2_SUCCESS)
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy] setting receiver pub key format");
}
if ((NULL != user) && (rampart_context_set_user(rampart_context, env, user) == AXIS2_SUCCESS))
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy] setting username ");
if ((NULL != password) && (rampart_context_set_password(rampart_context, env, password) == AXIS2_SUCCESS))
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy] setting password ");
if ((NULL != password_type) && (rampart_context_set_password_type(rampart_context, env, password_type) == AXIS2_SUCCESS))
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy] setting password type ");
if ((ttl > 0) && (rampart_context_set_ttl(rampart_context, env, ttl) == AXIS2_SUCCESS))
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_sec_policy) setting ttl");
}
void handle_client_security(axutil_env_t *env,
axis2_svc_client_t *svc_client,
axiom_node_t *incoming_policy_node,
axis2_char_t *private_key,
axis2_char_t *certificate,
axis2_char_t *receiver_certificate,
axis2_char_t *user,
axis2_char_t *password,
axis2_char_t *password_type,
int ttl)
{
axiom_element_t *root = NULL;
neethi_policy_t *neethi_policy = NULL;
axis2_svc_t *svc = NULL;
axis2_desc_t *desc = NULL;
axis2_policy_include_t *policy_include = NULL;
axis2_svc_ctx_t *svc_ctx = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
axis2_conf_t *conf = NULL;
axutil_param_t *security_param = NULL;
rampart_context_t *rampart_ctx = NULL;
if (NULL != incoming_policy_node) {
if (axiom_node_get_node_type(incoming_policy_node, env) == AXIOM_ELEMENT) {
root = (axiom_element_t *) axiom_node_get_data_element(incoming_policy_node, env);
if (NULL != root) {
neethi_policy = neethi_engine_get_policy(env, incoming_policy_node, root);
if (NULL != neethi_policy) {
svc = axis2_svc_client_get_svc(svc_client, env);
if (NULL != svc) {
desc = axis2_svc_get_base(svc, env);
policy_include = axis2_desc_get_policy_include(desc, env);
axis2_policy_include_add_policy_element(policy_include, env, AXIS2_SERVICE_POLICY, neethi_policy);
svc_ctx = axis2_svc_client_get_svc_ctx(svc_client, env);
if (NULL != svc_ctx) {
conf_ctx = axis2_svc_ctx_get_conf_ctx(svc_ctx, env);
if (NULL != conf_ctx) {
conf = axis2_conf_ctx_get_conf(conf_ctx, env);
if (NULL != conf) {
rampart_ctx = rampart_context_create(env);
wsf_set_security_data_to_rampart_context(env, rampart_ctx, private_key, certificate, receiver_certificate, user, password, password_type, ttl);
security_param = axutil_param_create(env, (axis2_char_t *) WSF_RAMPART_CONFIGURATION, rampart_ctx);
if (NULL != security_param)
axis2_conf_add_param(conf, env, security_param);
}
}
}
}
}
}
}
}
axis2_svc_client_engage_module(svc_client, env, AXIS2_MODULE_RAMPART);
}
SWIGINTERN swig_type_info*
SWIG_pchar_descriptor(void)
{
static int init = 0;
static swig_type_info* info = 0;
if (!init) {
info = SWIG_TypeQuery("_p_char");
init = 1;
}
return info;
}
SWIGINTERN int
SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
{
if (SvPOK(obj)) {
STRLEN len = 0;
char *cstr = SvPV(obj, len);
size_t size = len + 1;
if (cptr) {
if (alloc) {
if (*alloc == SWIG_NEWOBJ) {
*cptr = (char *)memcpy((char *)malloc((size)*sizeof(char)), cstr, sizeof(char)*(size));
} else {
*cptr = cstr;
*alloc = SWIG_OLDOBJ;
}
}
}
if (psize) *psize = size;
return SWIG_OK;
} else {
swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
if (pchar_descriptor) {
char* vptr = 0;
if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0) == SWIG_OK) {
if (cptr) *cptr = vptr;
if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0;
if (alloc) *alloc = SWIG_OLDOBJ;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.765 second using v1.00-cache-2.02-grep-82fe00e-cpan-f73e49a70403 )