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