Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
        /**
         * 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;
        }
Ejemplo n.º 3
0
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;
}