You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ma...@apache.org on 2007/04/30 05:25:00 UTC
svn commit: r533577 - in /webservices/axis2/scratch/c/neethi/axis2c/neethi:
include/rp_builders.h src/assertion_builder.c
src/secpolicy/builder/secpolicy_builder.c
src/secpolicy/builder/username_token_builder.c
Author: manjula
Date: Sun Apr 29 20:24:59 2007
New Revision: 533577
URL: http://svn.apache.org/viewvc?view=rev&rev=533577
Log:
Modifying the assertion_builder to handle asymmetric_binding.
Modified:
webservices/axis2/scratch/c/neethi/axis2c/neethi/include/rp_builders.h
webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c
webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/secpolicy_builder.c
webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/username_token_builder.c
Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/include/rp_builders.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/include/rp_builders.h?view=diff&rev=533577&r1=533576&r2=533577
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/include/rp_builders.h (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/include/rp_builders.h Sun Apr 29 20:24:59 2007
@@ -29,6 +29,12 @@
#include <rp_wss10_builder.h>
#include <rp_qname_matcher.h>
#include <rp_https_token_builder.h>
+#include <rp_x509_token_builder.h>
+#include <rp_recipient_token_builder.h>
+#include <rp_initiator_token_builder.h>
+#include <rp_asymmetric_binding_builder.h>
+#include <rp_signed_encrypted_parts_builder.h>
+#include <rp_rampart_config_builder.h>
/**
* @file rp_builders.h
* @all the secpolicy builders
Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c?view=diff&rev=533577&r1=533576&r2=533577
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c Sun Apr 29 20:24:59 2007
@@ -42,7 +42,17 @@
return rp_transport_binding_builder_build(env, node, element);
}
else return NULL;
- }
+ }
+
+ if(axutil_strcmp(localname, RP_ASYMMETRIC_BINDING) ==0 )
+ {
+ if(rp_match_secpolicy_qname(env, RP_ASYMMETRIC_BINDING, node, element))
+ {
+ return rp_asymmetric_binding_builder_build(env, node, element);
+ }
+ else return NULL;
+ }
+
else if(axutil_strcmp(localname, RP_TRANSPORT_TOKEN)==0)
{
if(rp_match_secpolicy_qname(env, RP_TRANSPORT_TOKEN, node, element))
@@ -51,6 +61,152 @@
}
else return NULL;
}
+
+ else if(axutil_strcmp(localname,RP_RECIPIENT_TOKEN )==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_RECIPIENT_TOKEN, node, element))
+ {
+ return rp_recipient_token_builder_build(env, node, element);
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_INITIATOR_TOKEN)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_INITIATOR_TOKEN, node, element))
+ {
+ return rp_initiator_token_builder_build(env, node, element);
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_X509_TOKEN)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_X509_TOKEN, node, element))
+ {
+ return rp_x509_token_builder_build(env, node, element);
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_ENCRYPT_BEFORE_SIGNING)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_ENCRYPT_BEFORE_SIGNING, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_ENCRYPT_BEFORE_SIGNING);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_SIGN_BEFORE_ENCRYPTING)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_SIGN_BEFORE_ENCRYPTING, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL,ASSERTION_TYPE_SIGN_BEFORE_ENCRYPTING);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_ENCRYPT_SIGNATURE)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_ENCRYPT_SIGNATURE, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_ENCRYPT_SIGNATURE);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_PROTECT_TOKENS)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_PROTECT_TOKENS, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_PROTECT_TOKENS);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_ONLY_SIGN_ENTIRE_HEADERS_AND_BODY)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_ONLY_SIGN_ENTIRE_HEADERS_AND_BODY, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_ONLY_SIGN_ENTIRE_HEADERS_AND_BODY);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_REQUIRE_KEY_IDENTIFIRE_REFERENCE)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_REQUIRE_KEY_IDENTIFIRE_REFERENCE, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_REQUIRE_KEY_IDENTIFIRE_REFERENCE);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_REQUIRE_ISSUER_SERIAL_REFERENCE)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_REQUIRE_ISSUER_SERIAL_REFERENCE, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_REQUIRE_ISSUER_SERIAL_REFERENCE);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_REQUIRE_EMBEDDED_TOKEN_REFERENCE)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_REQUIRE_EMBEDDED_TOKEN_REFERENCE, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_REQUIRE_EMBEDDED_TOKEN_REFERENCE);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_REQUIRE_THUMBPRINT_REFERENCE)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_REQUIRE_THUMBPRINT_REFERENCE, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_REQUIRE_THUMBPRINT_REFERENCE);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_WSS_X509_V1_TOKEN_10)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_WSS_X509_V1_TOKEN_10, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_WSS_X509_V1_TOKEN_10);
+ return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_WSS_X509_V3_TOKEN_10)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_WSS_X509_V3_TOKEN_10, node, element))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_WSS_X509_V3_TOKEN_10);
+ return assertion;
+ }
+ else return NULL;
+ }
else if(axutil_strcmp(localname, RP_ALGORITHM_SUITE)==0)
{
if(rp_match_secpolicy_qname(env, RP_ALGORITHM_SUITE, node, element))
@@ -181,6 +337,30 @@
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_MUST_SUPPORT_REF_EMBEDDED_TOKEN);
return assertion;
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_SIGNED_PARTS)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_SIGNED_PARTS, node, element))
+ {
+ return rp_signed_encrypted_parts_builder_build(env, node, element);
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_ENCRYPTED_PARTS)==0)
+ {
+ if(rp_match_secpolicy_qname(env, RP_LAYOUT, node, element))
+ {
+ return rp_signed_encrypted_parts_builder_build(env, node, element);
+ }
+ else return NULL;
+ }
+ else if(axutil_strcmp(localname, RP_RAMPART_CONFIG)==0)
+ {
+ if(rp_match_rampart_config_qname(env, RP_RAMPART_CONFIG, node, element))
+ {
+ return rp_rampart_config_builder_build(env, node, element);
}
else return NULL;
}
Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/secpolicy_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/secpolicy_builder.c?view=diff&rev=533577&r1=533576&r2=533577
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/secpolicy_builder.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/secpolicy_builder.c Sun Apr 29 20:24:59 2007
@@ -28,7 +28,7 @@
secpolicy_process_alternatives(
const axutil_env_t *env,
neethi_all_t *all,
- rp_secpolicy_t *transport_binding);
+ rp_secpolicy_t *secpolicy);
/***********************************/
@@ -44,6 +44,8 @@
neethi_all_t *all = NULL;
rp_secpolicy_t *secpolicy = NULL;
+ secpolicy = rp_secpolicy_create(env);
+
policy = neethi_engine_get_normalize(env, AXIS2_FALSE, policy);
alternatives = neethi_policy_get_alternatives(policy, env);
@@ -99,6 +101,21 @@
rp_property_set_value(binding, env, transport_binding, RP_BINDING_TRANSPORT);
rp_secpolicy_set_binding(secpolicy, env, binding);
}
+ else if(type == ASSERTION_TYPE_ASSYMMETRIC_BINDING)
+ {
+ rp_property_t *binding = NULL;
+ rp_asymmetric_binding_t *asymmetric_binding = NULL;
+
+ asymmetric_binding = (rp_asymmetric_binding_t *)neethi_assertion_get_value(assertion, env);
+ if(!asymmetric_binding)
+ {
+ printf("Asymmetric Binding not set\n");
+ return AXIS2_FAILURE;
+ }
+ binding = rp_property_create(env);
+ rp_property_set_value(binding, env, asymmetric_binding, RP_BINDING_ASYMMETRIC);
+ rp_secpolicy_set_binding(secpolicy, env, binding);
+ }
else if(type == ASSERTION_TYPE_SUPPORTING_TOKENS)
{
rp_supporting_tokens_t *supporting_tokens = NULL;
@@ -132,6 +149,24 @@
wss = rp_property_create(env);
rp_property_set_value(wss, env, wss10, RP_WSS_WSS10);
rp_secpolicy_set_wss(secpolicy, env, wss);
+ }
+ else if(type == ASSERTION_TYPE_SIGNED_ENCRYPTED_PARTS)
+ {
+ rp_signed_encrypted_parts_t *signed_encrypted_parts = NULL;
+ signed_encrypted_parts = (rp_signed_encrypted_parts_t *)neethi_assertion_get_value(assertion, env);
+ if(signed_encrypted_parts)
+ {
+ if(rp_signed_encrypted_parts_get_signedparts(signed_encrypted_parts, env))
+ {
+ rp_secpolicy_set_signed_parts(secpolicy, env, signed_encrypted_parts);
+ }
+ else
+ {
+ rp_secpolicy_set_encrypted_parts(secpolicy, env, signed_encrypted_parts);
+ }
+ }
+ else return AXIS2_FAILURE;
+
}
else if(type == ASSERTION_TYPE_RAMPART_CONFIG)
{
Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/username_token_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/username_token_builder.c?view=diff&rev=533577&r1=533576&r2=533577
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/username_token_builder.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/secpolicy/builder/username_token_builder.c Sun Apr 29 20:24:59 2007
@@ -62,6 +62,12 @@
rp_username_token_set_inclusion(username_token,env,inclusion_value);
child_node = axiom_node_get_first_element(node,env);
+ if(!child_node)
+ {
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, username_token, ASSERTION_TYPE_USERNAME_TOKEN);
+ return assertion;
+ }
if(axiom_node_get_node_type(child_node, env) == AXIOM_ELEMENT)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org