Modified: webservices/rampart/scratch/c/trust/c/src/trust/sts_client.c URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/trust/c/src/trust/sts_client.c?rev=602779&r1=602778&r2=602779&view=diff ============================================================================== --- webservices/rampart/scratch/c/trust/c/src/trust/sts_client.c (original) +++ webservices/rampart/scratch/c/trust/c/src/trust/sts_client.c Sun Dec 9 21:31:33 2007 @@ -24,28 +24,12 @@ struct trust_sts_client { - /*WS Trust version */ - int version; - - /* Key size */ - int key_size; - /* Algorithm Suite for Entropy */ rp_algorithmsuite_t *algo_suite; /* Trust 1.0 Assertions */ rp_trust10_t *trust10; - /* Requestor Entropy */ - axis2_char_t *requestor_entropy; - - axis2_char_t *appliesto; - - axis2_char_t *token_type; - - /* Time To Live */ - int ttl; - /* Issuer Address */ axis2_char_t *issuer_address; @@ -67,13 +51,7 @@ sts_client = (trust_sts_client_t *) AXIS2_MALLOC(env->allocator, sizeof(trust_sts_client_t)); - sts_client->version = TRUST_VERSION_05_02; - sts_client->key_size = 0; - sts_client->ttl = 0; - sts_client->requestor_entropy = NULL; sts_client->trust10 = NULL; - sts_client->appliesto = NULL; - sts_client->token_type = NULL; sts_client->home_dir = NULL; sts_client->issuer_address = NULL; sts_client->issuer_policy_location = NULL; @@ -100,20 +78,20 @@ trust_sts_client_request_security_token( trust_sts_client_t * sts_client, const axutil_env_t * env, - axis2_char_t * applies_to, - axis2_char_t * token_type) + trust_context_t *trust_context) { axis2_svc_client_t *svc_client = NULL; neethi_policy_t *issuer_policy = NULL; neethi_policy_t *service_policy = NULL; axis2_status_t status = AXIS2_SUCCESS; + axiom_node_t *rst_node = NULL; axiom_node_t *return_node = NULL; - sts_client->appliesto = applies_to; - sts_client->token_type = token_type; - + /*Action Logic*/ + trust_rst_context_t *rst_context = NULL; + axis2_char_t *request_type = NULL; + issuer_policy = neethi_util_create_policy_from_file(env, sts_client->issuer_policy_location); - service_policy = neethi_util_create_policy_from_file(env, sts_client->service_policy_location); if (!issuer_policy || !service_policy) @@ -125,10 +103,26 @@ trust_sts_client_process_policies(sts_client, env, issuer_policy, service_policy); } - /* TODO : Fix action logic */ - svc_client = - trust_sts_client_get_svc_client(sts_client, env, - "http://schemas.xmlsoap.org/ws/2005/02/RST/issue"); + + /*Action Logic - RequestType - used for specify the requesting action*/ + rst_context = trust_context_get_rst_context(env, trust_context); + if(NULL == rst_context) + { + AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] RST_Context is NULL: Created RST_CTX may not set to TrustContest"); + return; + } + + request_type = trust_rst_context_get_request_type(rst_context, env); + + if(NULL == request_type) + { + AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] RST-RequestType is NOT set. RST MUST have a RequestType"); + return; + } + + svc_client = + trust_sts_client_get_svc_client(sts_client, env, request_type); + if (status == AXIS2_SUCCESS) { @@ -137,13 +131,17 @@ { AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Policy setting failed."); } - - return_node = - axis2_svc_client_send_receive(svc_client, env, - trust_sts_client_create_issue_request(sts_client, env, - "/Issue", - applies_to, - token_type)); + /*Building the RST */ + rst_node = trust_context_build_rst_node(env, trust_context); + if(rst_node) + { + return_node = axis2_svc_client_send_receive(svc_client, env, rst_node); + } + else + { + AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] RST-Not send -> RST Node building failed"); + return; + } } if (svc_client) { @@ -208,6 +206,8 @@ return AXIS2_SUCCESS; } + +/* AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_sts_client_create_issue_request( trust_sts_client_t * sts_client, @@ -223,10 +223,10 @@ rst_node = trust_util_create_rst_element(env, sts_client->version, NULL); - /* Setting up the request type */ + trust_util_create_request_type_element(env, sts_client->version, rst_node, request_type); - /* Setting up the token type */ + if (token_type) { trust_util_create_token_type_element(env, sts_client->version, rst_node, token_type); @@ -263,35 +263,7 @@ return rst_node; } -AXIS2_EXTERN axiom_node_t * AXIS2_CALL -trust_sts_client_create_renew_request( - trust_sts_client_t *sts_client, - const axutil_env_t *env, - axis2_char_t *token_type, - axis2_char_t *request_type, - axiom_node_t *renew_target, - axis2_bool_t allow_postdating, - trust_allow_t renew_allow, - trust_ok_t ok_flag) -{ - axiom_node_t *rst_node = NULL; - - rst_node = trust_util_create_rst_element(env, sts_client->version, NULL); - - if(token_type) - { - trust_util_create_token_type_element(env, sts_client->version, rst_node, token_type); - } - trust_util_create_request_type_element(env, sts_client->version, rst_node, request_type); - - if(renew_target) - { - trust_util_create_renew_traget_element(env, sts_client->version, rst_node, renew_target); - } - else - { - return NULL; - } + if(allow_postdating) { @@ -302,229 +274,7 @@ return rst_node; } - -AXIS2_EXTERN axiom_node_t * AXIS2_CALL -tust_sts_client_create_cancel_request( - trust_sts_client_t *sts_client, - const axutil_env_t *env, - axis2_char_t *request_type, - axiom_node_t *cancel_target) -{ - axiom_node_t *rst_node = NULL; - - rst_node = trust_util_create_rst_element(env, sts_client->version, NULL); - - trust_util_create_request_type_element(env, sts_client->version, rst_node, request_type); - - if(cancel_target) - { - if(!trust_util_create_cancel_target_element(env, sts_client->version, rst_node, cancel_target)) - { - return NULL; - } - } - else - { - return NULL; - } - - return rst_node; -} - -AXIS2_EXTERN axiom_node_t * AXIS2_CALL -trust_sts_client_create_validate_request( - trust_sts_client_t *sts_client, - const axutil_env_t *env, - axis2_char_t *token_type, - axis2_char_t *request_type) -{ - axiom_node_t *rst_node = NULL; - - rst_node = trust_util_create_rst_element(env, sts_client->version, NULL); - - if(token_type) - { - trust_util_create_token_type_element(env, sts_client->version, rst_node, token_type); - } - - if(request_type) - { - trust_util_create_request_type_element(env, sts_client->version, rst_node, request_type); - } - - return rst_node; -} -/* Process ISSUE RESPONSE */ -AXIS2_EXTERN trust_token_t *AXIS2_CALL -trust_sts_client_process_issue_response( - trust_sts_client_t * sts_client, - const axutil_env_t * env, - int wst_version, - axiom_node_t * response_node, - axiom_node_t * payload_sent) -{ - /* Token */ - trust_token_t *token = NULL; - - /* RSTR */ - axiom_node_t *rstr_node = NULL; - axiom_element_t *rstr_ele = NULL; - - axis2_char_t *wst_ns_uri = NULL; - - /* Attached Reference */ - axiom_node_t *attached_ref_node = NULL; - axiom_element_t *attached_ref_ele = NULL; - axutil_qname_t *attached_ref_qname = NULL; - axiom_node_t *req_attached_ref_node = NULL; - - /* Unattached Reference */ - axiom_node_t *unattached_ref_node = NULL; - axiom_element_t *unattached_ref_ele = NULL; - axutil_qname_t *unattached_ref_qname = NULL; - axiom_node_t *req_unattached_ref_node = NULL; - - /*Requsted Security Token */ - axiom_node_t *req_sec_token_node = NULL; - axiom_element_t *req_sec_token_ele = NULL; - axutil_qname_t *req_sec_token_qname = NULL; - axiom_node_t *sec_token = NULL; - - /* Life Time */ - axiom_node_t *life_time_node = NULL; - axiom_element_t *life_time_ele = NULL; - axutil_qname_t *life_time_qname = NULL; - - rstr_node = response_node; - - if (TRUST_VERSION_05_12 == wst_version) - { - rstr_node = axiom_node_get_first_element(rstr_node, env); - } - - wst_ns_uri = trust_util_get_wst_ns(env, wst_version); - rstr_ele = axiom_node_get_data_element(rstr_node, env); - - /* Extract Attached Reference */ - - attached_ref_qname = - axutil_qname_create(env, TRUST_REQUESTED_ATTACHED_REFERENCE, wst_ns_uri, TRUST_WST); - - attached_ref_ele = - axiom_element_get_first_child_with_qname(rstr_ele, env, attached_ref_qname, rstr_node, - &attached_ref_node); - - if (attached_ref_ele) - { - req_attached_ref_node = axiom_node_get_first_element(attached_ref_node, env); - } - - /* Extract unattached Reference */ - unattached_ref_qname = - axutil_qname_create(env, TRUST_REQUESTED_UNATTACHED_REFERENCE, wst_ns_uri, TRUST_WST); - - unattached_ref_ele = - axiom_element_get_first_child_with_qname(rstr_ele, env, unattached_ref_qname, rstr_node, - &unattached_ref_node); - if (unattached_ref_ele) - { - req_unattached_ref_node = axiom_node_get_first_element(unattached_ref_node, env); - } - - /* Extract Requested Security Token */ - req_sec_token_qname = - axutil_qname_create(env, TRUST_REQUESTED_SECURITY_TOKEN, wst_ns_uri, TRUST_WST); - req_sec_token_ele = - axiom_element_get_first_child_with_qname(rstr_ele, env, req_sec_token_qname, rstr_node, - &req_sec_token_node); - - if (req_sec_token_node) - { - sec_token = axiom_node_get_first_element(req_sec_token_node, env); - } - else - { - /*Requsted Token Missing - Handle */ - } - - /* Extract Life Time */ - life_time_qname = axutil_qname_create(env, TRUST_LIFE_TIME, wst_ns_uri, TRUST_WST); - life_time_ele = - axiom_element_get_first_child_with_qname(rstr_ele, env, life_time_qname, rstr_node, - &life_time_node); - - if (NULL == life_time_ele) - { - /* Handle NULL - life time ele */ - } - - /* TOKEN Creation */ - /* FIX id- NULL :-> ID should be computed here */ - token = trust_token_create(env, NULL, sec_token, life_time_node); - - return token; - -} - -AXIS2_EXTERN axis2_char_t *AXIS2_CALL -trust_sts_client_find_identifier( - trust_sts_client_t * sts_client, - axiom_node_t * req_att_ref_node, - axiom_node_t * req_unatt_ref_node, - axiom_node_t * sec_token_node, - const axutil_env_t * env) -{ - axis2_char_t *id_str = NULL; - - if (req_att_ref_node) - { - id_str = trust_sts_client_get_id_from_str(sts_client, req_att_ref_node, env); - } - else if (req_unatt_ref_node) - { - id_str = trust_sts_client_get_id_from_str(sts_client, req_unatt_ref_node, env); - } - else - { - /* FIX : WSConstants based wsu:Id */ - - } - return id_str; -} - -AXIS2_EXTERN axis2_char_t *AXIS2_CALL -trust_sts_client_get_id_from_str( - trust_sts_client_t * sts_client, - axiom_node_t * ref_node, - const axutil_env_t * env) -{ - /*FIX : implementation requires WS.Consatants paramaters */ - return NULL; -} - -AXIS2_EXTERN axis2_status_t AXIS2_CALL -trust_sts_client_set_ttl( - trust_sts_client_t * sts_client, - const axutil_env_t * env, - int ttl) -{ - AXIS2_ENV_CHECK(env, AXIS2_FAILURE); - AXIS2_PARAM_CHECK(env->error, ttl, AXIS2_FAILURE); - - sts_client->ttl = ttl; - - return AXIS2_SUCCESS; -} - -AXIS2_EXTERN int AXIS2_CALL -trust_sts_client_get_ttl( - trust_sts_client_t * sts_client, - const axutil_env_t * env) -{ - AXIS2_ENV_CHECK(env, AXIS2_FAILURE); - - return sts_client->ttl; -} + */ AXIS2_EXTERN axis2_status_t AXIS2_CALL trust_sts_client_set_issuer_address(
Modified: webservices/rampart/scratch/c/trust/c/src/trust/token.c URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/trust/c/src/trust/token.c?rev=602779&r1=602778&r2=602779&view=diff ============================================================================== --- webservices/rampart/scratch/c/trust/c/src/trust/token.c (original) +++ webservices/rampart/scratch/c/trust/c/src/trust/token.c Sun Dec 9 21:31:33 2007 @@ -124,14 +124,11 @@ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Lifetime element processing failed."); } - } -/* - else + } else { AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Cannot create trust token with null life element!"); return NULL; } -*/ return token; Modified: webservices/rampart/scratch/c/trust/c/src/trust/util.c URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/trust/c/src/trust/util.c?rev=602779&r1=602778&r2=602779&view=diff ============================================================================== --- webservices/rampart/scratch/c/trust/c/src/trust/util.c (original) +++ webservices/rampart/scratch/c/trust/c/src/trust/util.c Sun Dec 9 21:31:33 2007 @@ -20,18 +20,20 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_rst_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, - axiom_node_t *parent, + int wst_version, axis2_char_t * context) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *rst_node = NULL; axiom_element_t *rst_ele = NULL; axiom_namespace_t *wst_ns = NULL; axiom_attribute_t *context_attr = NULL; axis2_status_t status = AXIS2_SUCCESS; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); + wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); - rst_ele = axiom_element_create(env, parent, TRUST_REQUEST_SECURITY_TOKEN, wst_ns, &rst_node); + rst_ele = axiom_element_create(env, NULL, TRUST_REQUEST_SECURITY_TOKEN, wst_ns, &rst_node); if (!rst_ele) { @@ -58,15 +60,18 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_rstr_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axis2_char_t * context) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *rstr_node = NULL; axiom_element_t *rstr_ele = NULL; axiom_namespace_t *wst_ns = NULL; axiom_attribute_t *context_attr = NULL; axis2_status_t status = AXIS2_SUCCESS; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); + wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); rstr_ele = axiom_element_create(env, NULL, TRUST_REQUEST_SECURITY_TOKEN_RESPONSE, wst_ns, &rstr_node); @@ -96,12 +101,15 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_rstr_collection_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri) + int wst_version) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *rstrc_node = NULL; axiom_element_t *rstrc_ele = NULL; axiom_namespace_t *wst_ns = NULL; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); + wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); rstrc_ele = axiom_element_create(env, NULL, TRUST_REQUEST_SECURITY_TOKEN_RESPONSE_COLLECTION, wst_ns, @@ -119,16 +127,21 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_request_type_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axis2_char_t * request_type) { + axis2_char_t *wst_ns_uri = NULL; axis2_char_t *req_type_str = NULL; axiom_node_t *request_type_node = NULL; axiom_element_t *request_type_ele = NULL; axiom_namespace_t *wst_ns = NULL; axis2_status_t status = AXIS2_SUCCESS; + AXIS2_ENV_CHECK(env, NULL); + + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); + wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); request_type_ele = axiom_element_create(env, parent_node, TRUST_REQUEST_TYPE, wst_ns, &request_type_node); @@ -165,15 +178,20 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_token_type_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axis2_char_t * token_type) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *token_type_node = NULL; axiom_element_t *token_type_ele = NULL; axiom_namespace_t *wst_ns = NULL; axis2_status_t status = AXIS2_SUCCESS; + AXIS2_ENV_CHECK(env, NULL); + + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); + wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); token_type_ele = axiom_element_create(env, parent_node, TRUST_TOKEN_TYPE, wst_ns, &token_type_node); @@ -252,17 +270,19 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_claims_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axiom_node_t * claims_content, axis2_char_t * dialect_uri) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *claims_node = NULL; axiom_element_t *claims_ele = NULL; axiom_namespace_t *wst_ns = NULL; axiom_attribute_t *dialect_attr = NULL; axis2_status_t status = AXIS2_SUCCESS; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); claims_ele = axiom_element_create(env, parent_node, TRUST_CLAIMS, wst_ns, &claims_node); @@ -313,18 +333,27 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_requested_security_token_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, - axiom_node_t * parent_node) + int wst_version, + axiom_node_t * parent_node, + axiom_node_t * sec_token_node) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *requested_token_node = NULL; axiom_element_t *requested_token_ele = NULL; axiom_namespace_t *wst_ns = NULL; + + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); requested_token_ele = axiom_element_create(env, parent_node, TRUST_REQUESTED_SECURITY_TOKEN, wst_ns, &requested_token_node); + + if(sec_token_node) + { + axiom_node_add_child(requested_token_node, env, sec_token_node); + } if (!requested_token_ele) { AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, @@ -338,13 +367,15 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_requsted_proof_token_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node) { + axis2_char_t *wst_ns_uri = NULL; axiom_namespace_t *wst_ns = NULL; axiom_node_t *requested_prooft_node = NULL; axiom_element_t *requested_prooft_ele = NULL; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); requested_prooft_ele = @@ -363,13 +394,15 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_entropy_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node) { + axis2_char_t *wst_ns_uri = NULL; axiom_namespace_t *wst_ns = NULL; axiom_node_t *entropy_node = NULL; axiom_element_t *entropy_ele = NULL; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); entropy_ele = axiom_element_create(env, parent_node, TRUST_ENTROPY, wst_ns, &entropy_node); @@ -385,13 +418,15 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_computed_key_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node) { + axis2_char_t *wst_ns_uri = NULL; axiom_namespace_t *wst_ns = NULL; axiom_node_t *computed_key_node = NULL; axiom_element_t *computed_key_ele = NULL; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); computed_key_ele = @@ -408,11 +443,12 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_binary_secret_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axis2_char_t * enc_secret, axis2_char_t * bin_sec_type) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *bin_sec_node = NULL; axiom_element_t *bin_sec_ele = NULL; axiom_attribute_t *bin_sec_type_attr = NULL; @@ -420,6 +456,7 @@ axis2_char_t *type_str = NULL; axis2_status_t status = AXIS2_SUCCESS; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); bin_sec_ele = @@ -469,16 +506,18 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_computed_key_algo_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axis2_char_t * algo_id) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *comp_key_algo_node = NULL; axiom_element_t *comp_key_algo_ele = NULL; axiom_namespace_t *wst_ns = NULL; /*axis2_char_t *algo = NULL;*/ axis2_status_t status = AXIS2_SUCCESS; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); if (algo_id) @@ -511,15 +550,17 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_key_size_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axis2_char_t * key_size) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *key_size_node = NULL; axiom_element_t *key_size_ele = NULL; axiom_namespace_t *wst_ns = NULL; axis2_status_t status = AXIS2_SUCCESS; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); key_size_ele = axiom_element_create(env, parent_node, TRUST_KEY_SIZE, wst_ns, &key_size_node); @@ -547,16 +588,18 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_key_type_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axis2_char_t * key_type) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *key_type_node = NULL; axiom_element_t *key_type_ele = NULL; axiom_namespace_t *wst_ns = NULL; axis2_char_t *type = NULL; axis2_status_t status = AXIS2_SUCCESS; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); key_type_ele = axiom_element_create(env, parent_node, TRUST_KEY_TYPE, wst_ns, &key_type_node); @@ -574,6 +617,7 @@ { type = axutil_stracat(env, wst_ns_uri, key_type); status = axiom_element_set_text(key_type_ele, env, type, key_type_node); + if (status == AXIS2_FAILURE) { AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, @@ -587,11 +631,11 @@ } AXIS2_EXTERN axiom_node_t *AXIS2_CALL -trust_util_create_life_time_element( - const axutil_env_t * env, - axiom_node_t * parent_node, - axis2_char_t *wst_ns_uri, - int ttl) + trust_util_create_life_time_element( + const axutil_env_t * env, + axiom_node_t * parent_node, + int wst_version, + int ttl) { axiom_node_t *life_time_node = NULL; axiom_node_t *created_node = NULL; @@ -606,7 +650,7 @@ axutil_date_time_t *dt = NULL; axis2_status_t status = AXIS2_SUCCESS; - wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); + wst_ns = axiom_namespace_create(env, TRUST_WST_XMLNS, TRUST_WST); wsu_ns = axiom_namespace_create(env, TRUST_WSU_XMLNS, TRUST_WSU); life_time_ele = @@ -685,13 +729,15 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_req_attached_reference_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *attached_ref_node = NULL; axiom_element_t *attached_ref_ele = NULL; axiom_namespace_t *wst_ns = NULL; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); attached_ref_ele = @@ -710,13 +756,15 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_req_unattached_reference_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *unattached_ref_node = NULL; axiom_element_t *unattached_ref_ele = NULL; axiom_namespace_t *wst_ns = NULL; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); unattached_ref_ele = @@ -735,7 +783,7 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_encrypted_data_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axis2_char_t * enc_data) { @@ -769,15 +817,17 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_renew_traget_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axiom_node_t * renew_pending_node) { axiom_node_t *renew_target_node = NULL; axiom_element_t *renew_target_ele = NULL; + axis2_char_t *wst_ns_uri = NULL; axiom_namespace_t *wst_ns = NULL; axis2_status_t status = AXIS2_SUCCESS; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); renew_target_ele = @@ -808,13 +858,15 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_allow_postdating_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *allow_postdating_node = NULL; axiom_element_t *allow_postdating_ele = NULL; axiom_namespace_t *wst_ns = NULL; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); allow_postdating_ele = @@ -832,13 +884,14 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_renewing_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, trust_allow_t allow_flag, trust_ok_t ok_flag) { axiom_node_t *renewing_node = NULL; axiom_element_t *renewing_ele = NULL; + axis2_char_t *wst_ns_uri = NULL; axiom_namespace_t *wst_ns = NULL; axiom_attribute_t *allow_attr = NULL; axiom_attribute_t *ok_attr = NULL; @@ -846,6 +899,7 @@ axis2_char_t *allow = NULL; axis2_char_t *ok = NULL; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); renewing_ele = axiom_element_create(env, parent_node, TRUST_RENEWING, wst_ns, &renewing_node); @@ -873,14 +927,16 @@ AXIS2_EXTERN axiom_node_t *AXIS2_CALL trust_util_create_cancel_target_element( const axutil_env_t * env, - axis2_char_t *wst_ns_uri, + int wst_version, axiom_node_t * parent_node, axiom_node_t * token_cancel_pending_node) { axiom_node_t *cancel_target_node = NULL; axiom_element_t *cancel_target_ele = NULL; + axis2_char_t *wst_ns_uri = NULL; axiom_namespace_t *wst_ns = NULL; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); cancel_target_ele = @@ -908,10 +964,11 @@ trust_util_create_validation_response_element( const axutil_env_t * env, axiom_node_t * parent_node, - axis2_char_t *wst_ns_uri, + int wst_version, axis2_char_t * code, axis2_char_t * reason) { + axis2_char_t *wst_ns_uri = NULL; axiom_node_t *status_node = NULL; axiom_node_t *code_node = NULL; axiom_node_t *reason_node = NULL; @@ -921,6 +978,7 @@ axiom_namespace_t *wst_ns = NULL; axis2_status_t status = AXIS2_SUCCESS; + wst_ns_uri = trust_util_get_wst_ns(env, wst_version); wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST); status_ele =