axis2_status_t wsf_wsdl_util_insert_policy_to_svc_client( const axutil_env_t* env, neethi_policy_t* merged_input_neethi_policy, axis2_svc_client_t* svc_client) { axis2_desc_t *desc = NULL; axis2_policy_include_t *policy_include = NULL; axis2_svc_t *svc = NULL; svc = axis2_svc_client_get_svc (svc_client, env); if (!svc) { AXIS2_LOG_DEBUG_MSG(env->log, "Service is NULL"); return AXIS2_FAILURE; } desc = axis2_svc_get_base (svc, env); if (!desc) { AXIS2_LOG_DEBUG_MSG(env->log, "Description is NULL"); return AXIS2_FAILURE; } policy_include = axis2_desc_get_policy_include (desc, env); if (!policy_include) { AXIS2_LOG_DEBUG_MSG(env->log, "Policy Include is NULL"); return AXIS2_FAILURE; } return axis2_policy_include_add_policy_element (policy_include, env, AXIS2_SERVICE_POLICY, merged_input_neethi_policy); }
/** * auto generated function definition signature * for "applySecurity|http://service.config.security.carbon.wso2.org" operation. * @param env environment ( mandatory)* @param MessageContext the outmessage context * @param _applySecurity of the adb_applySecurity_t* * * @return */ axis2_status_t axis2_skel_SecurityAdminService_applySecurity(const axutil_env_t *env , axis2_msg_ctx_t *msg_ctx, adb_applySecurity_t* _applySecurity, axis2_skel_SecurityAdminService_applySecurity_fault *fault ) { axis2_char_t* service_name = NULL; axis2_char_t* scenario_id = NULL; axis2_conf_ctx_t* conf_ctx = NULL; axis2_conf_t* conf = NULL; axis2_svc_t* svc = NULL; axis2_char_t* repo_path = NULL; axis2_char_t* policy_file_name = NULL; neethi_policy_t* neethi_policy = NULL; axis2_desc_t* desc = NULL; axis2_policy_include_t* policy_include = NULL; axutil_qname_t* module_qname = NULL; axis2_module_desc_t* module_desc = NULL; /* Get parameters */ service_name = adb_applySecurity_get_serviceName(_applySecurity, env); scenario_id = adb_applySecurity_get_policyId(_applySecurity, env); /* Load neethi policy */ conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env); repo_path = axis2_conf_ctx_get_root_dir(conf_ctx, env); policy_file_name = axutil_strcat(env, repo_path, AXIS2_PATH_SEP_STR, "services", AXIS2_PATH_SEP_STR, "SecurityAdminService", AXIS2_PATH_SEP_STR, "policies", AXIS2_PATH_SEP_STR, scenario_id, "-policy.xml", NULL); neethi_policy = neethi_util_create_policy_from_file(env, policy_file_name); AXIS2_FREE(env->allocator, policy_file_name); if (!neethi_policy) return AXIS2_FAILURE; /* Get service instance*/ conf = axis2_conf_ctx_get_conf(conf_ctx, env); svc = axis2_conf_get_svc(conf, env, service_name); if (!svc) return AXIS2_FAILURE; desc = axis2_svc_get_base(svc, env); if (!desc) return AXIS2_FAILURE; policy_include = axis2_desc_get_policy_include(desc, env); if (!policy_include) return AXIS2_FAILURE; /* Attach policy*/ axis2_policy_include_add_policy_element(policy_include, env, AXIS2_SERVICE_POLICY, neethi_policy); /* Enagage modules*/ module_qname = axutil_qname_create(env, "rampart", NULL, NULL); module_desc = axis2_conf_get_module(conf, env, module_qname); axutil_qname_free(module_qname, env); axis2_svc_disengage_module(svc, env, module_desc, conf); axis2_svc_engage_module(svc, env, module_desc, conf); return AXIS2_SUCCESS; }
/** * auto generated function definition signature * for "disableSecurityOnService|http://service.config.security.carbon.wso2.org" operation. * @param env environment ( mandatory)* @param MessageContext the outmessage context * @param _disableSecurityOnService of the adb_disableSecurityOnService_t* * * @return */ axis2_status_t axis2_skel_SecurityAdminService_disableSecurityOnService(const axutil_env_t *env , axis2_msg_ctx_t *msg_ctx, adb_disableSecurityOnService_t* _disableSecurityOnService, axis2_skel_SecurityAdminService_disableSecurityOnService_fault *fault ) { axis2_char_t* service_name = NULL; axis2_conf_ctx_t* conf_ctx = NULL; axis2_conf_t* conf = NULL; axis2_svc_t* svc = NULL; neethi_policy_t* neethi_policy = NULL; axis2_char_t* policy_name = NULL; axis2_desc_t* desc = NULL; axis2_policy_include_t* policy_include = NULL; axutil_qname_t* module_qname = NULL; axis2_module_desc_t* module_desc = NULL; /* Get parameters*/ service_name = adb_disableSecurityOnService_get_serviceName( _disableSecurityOnService, env); /* Get service instance*/ conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env); conf = axis2_conf_ctx_get_conf(conf_ctx, env); svc = axis2_conf_get_svc(conf, env, service_name); if (!svc) return AXIS2_FAILURE; desc = axis2_svc_get_base(svc, env); if (!desc) return AXIS2_FAILURE; policy_include = axis2_desc_get_policy_include(desc, env); if (!policy_include) return AXIS2_FAILURE; /* Detach policy*/ neethi_policy = axis2_policy_include_get_policy(policy_include, env); if (!neethi_policy) return AXIS2_FAILURE; policy_name = neethi_policy_get_name(neethi_policy, env); if (!policy_name) policy_name = neethi_policy_get_id(neethi_policy, env); axis2_policy_include_remove_policy_element(policy_include, env, policy_name); /* Disenagage modules*/ module_qname = axutil_qname_create(env, "rampart", NULL, NULL); module_desc = axis2_conf_get_module(conf, env, module_qname); axutil_qname_free(module_qname, env); axis2_svc_disengage_module(svc, env, module_desc, conf); return AXIS2_SUCCESS; }
AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_svc_client_set_policy( axis2_svc_client_t * svc_client, const axutil_env_t * env, neethi_policy_t * policy) { axis2_svc_t *svc = NULL; axis2_desc_t *desc = NULL; axis2_policy_include_t *policy_include = NULL; AXIS2_PARAM_CHECK(env->error, svc_client, AXIS2_FAILURE); AXIS2_PARAM_CHECK(env->error, policy, AXIS2_FAILURE); svc = axis2_svc_client_get_svc(svc_client, env); if(!svc) { AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot find service of service client. Cannot set policy."); return AXIS2_FAILURE; } desc = axis2_svc_get_base(svc, env); if(!desc) { AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot find service description of service client. Cannot set policy."); return AXIS2_FAILURE; } policy_include = axis2_desc_get_policy_include(desc, env); if(!policy_include) { AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot find policy include. Cannot set policy."); return AXIS2_FAILURE; } axis2_policy_include_add_policy_element(policy_include, env, AXIS2_SERVICE_POLICY, policy); return AXIS2_SUCCESS; }