You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by sh...@apache.org on 2008/02/13 04:13:33 UTC

svn commit: r627229 - in /webservices/rampart/trunk/c: include/trust_rst.h samples/client/sts_client/client.c samples/server/saml_sts/services.xml src/trust/rst.c src/trust/sts_client.c

Author: shankar
Date: Tue Feb 12 19:13:28 2008
New Revision: 627229

URL: http://svn.apache.org/viewvc?rev=627229&view=rev
Log:
applying Kasun's patch for issue RAMPARTC-64.

Modified:
    webservices/rampart/trunk/c/include/trust_rst.h
    webservices/rampart/trunk/c/samples/client/sts_client/client.c
    webservices/rampart/trunk/c/samples/server/saml_sts/services.xml
    webservices/rampart/trunk/c/src/trust/rst.c
    webservices/rampart/trunk/c/src/trust/sts_client.c

Modified: webservices/rampart/trunk/c/include/trust_rst.h
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/include/trust_rst.h?rev=627229&r1=627228&r2=627229&view=diff
==============================================================================
--- webservices/rampart/trunk/c/include/trust_rst.h (original)
+++ webservices/rampart/trunk/c/include/trust_rst.h Tue Feb 12 19:13:28 2008
@@ -56,11 +56,14 @@
         const axutil_env_t *env,
         axiom_node_t *parent);
 
+	/*Automated RST building with RelyingParty's policy*/
 	AXIS2_EXTERN axiom_node_t * AXIS2_CALL
 	trust_rst_build_rst_with_issued_token_assertion(
 		trust_rst_t *rst,
 		const axutil_env_t *env,
-		rp_issued_token_t *issued_token);    
+		rp_issued_token_t *issued_token);
+
+    
     /* Getters & Setters */
     
     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
@@ -91,13 +94,23 @@
     trust_rst_get_request_type(
         trust_rst_t *rst,
         const axutil_env_t *env);
-    
+ 
     AXIS2_EXTERN axis2_status_t AXIS2_CALL
     trust_rst_set_request_type(
         trust_rst_t *rst,
         const axutil_env_t *env,
         axis2_char_t *request_type);
     
+	AXIS2_EXTERN axis2_char_t * AXIS2_CALL
+	trust_rst_get_wsa_action(
+			trust_rst_t *rst,
+			const axutil_env_t *env);
+
+	AXIS2_EXTERN axis2_status_t AXIS2_CALL
+	trust_rst_set_wsa_action(
+			trust_rst_t *rst,
+			const axutil_env_t *env,
+			axis2_char_t *wsa_action);
     
     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
     trust_rst_get_applies_to_addr(
@@ -322,4 +335,5 @@
 #endif
 
 #endif 
+
 

Modified: webservices/rampart/trunk/c/samples/client/sts_client/client.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/client/sts_client/client.c?rev=627229&r1=627228&r2=627229&view=diff
==============================================================================
--- webservices/rampart/trunk/c/samples/client/sts_client/client.c (original)
+++ webservices/rampart/trunk/c/samples/client/sts_client/client.c Tue Feb 12 19:13:28 2008
@@ -2,6 +2,7 @@
 #include <trust_context.h>
 #include <trust_rst.h>
 #include <trust_rstr.h>
+#include <trust_constants.h>
 #include <axutil_env.h>
 #include <rampart_constants.h>
 #include <neethi_util.h>
@@ -22,6 +23,7 @@
     axis2_char_t *appliesto = "http://oasis.open.org";
     axis2_char_t *token = "oasis:names:tc:SAML:1.0:assertion";
     axis2_char_t *request_type = "http://schemas.xmlsoap.org/ws/2005/02/RST/Issue";
+	axis2_char_t *action = "http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue";
 
     trust_context_t *trust_ctx = NULL;
     trust_rst_t *rst = NULL;
@@ -75,6 +77,7 @@
     trust_rst_set_token_type(rst, env, token);
     trust_rst_set_appliesto(rst, env, appliesto);
     trust_rst_set_request_type(rst, env, request_type);
+    trust_rst_set_wsa_action(rst, env, action);
 
     trust_context_set_rst(trust_ctx, env, rst);
 
@@ -100,6 +103,7 @@
     
 	return 0;
 }
+
 
 
 

Modified: webservices/rampart/trunk/c/samples/server/saml_sts/services.xml
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/server/saml_sts/services.xml?rev=627229&r1=627228&r2=627229&view=diff
==============================================================================
--- webservices/rampart/trunk/c/samples/server/saml_sts/services.xml (original)
+++ webservices/rampart/trunk/c/samples/server/saml_sts/services.xml Tue Feb 12 19:13:28 2008
@@ -7,7 +7,7 @@
     <module ref="rampart"/>
 
     <operation name="echoString">
-            <parameter name="wsamapping">http://example.com/ws/2004/09/policy/Test/EchoRequest</parameter>
+            <parameter name="wsamapping">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</parameter>
     </operation>
 
     <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">

Modified: webservices/rampart/trunk/c/src/trust/rst.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/trust/rst.c?rev=627229&r1=627228&r2=627229&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/trust/rst.c (original)
+++ webservices/rampart/trunk/c/src/trust/rst.c Tue Feb 12 19:13:28 2008
@@ -27,6 +27,8 @@
     
     axis2_char_t *request_type;
     
+	axis2_char_t *wsa_action;
+    
     axis2_char_t *applies_to_addr;
     
     trust_claims_t *claims;
@@ -87,6 +89,7 @@
     rst->attr_context = NULL;
     rst->token_type = NULL;
     rst->request_type = NULL;
+	rst->wsa_action = NULL;
     rst->applies_to_addr = NULL;
     rst->claims = NULL;
     rst->entropy = NULL;
@@ -758,6 +761,7 @@
     return NULL;
 }
 
+
 AXIS2_EXTERN axiom_node_t * AXIS2_CALL
 trust_rst_build_rst_with_issued_token_assertion(
 		trust_rst_t *rst,
@@ -771,9 +775,7 @@
 	axiom_node_t *rst_template_child = NULL;
 
 
-	/* */
-	rst = trust_rst_create(env);
-	trust_rst_set_wst_ns_uri(rst, env,"http://schemas.xmlsoap.org/ws/2005/02/trust");
+	/*Attr Context is NULL -?*/
 	rst_node = (axiom_node_t*)trust_util_create_rst_element(env, rst->wst_ns_uri, rst->attr_context);
 	rst_template_node = rp_issued_token_get_requested_sec_token_template(issued_token, env);
 	rst_template_node = axiom_node_detach(rst_template_node, env);	/*Detaching RSTTemplate from the original location- FIX - Detaching problem with NS'*/
@@ -796,6 +798,8 @@
 	return NULL;
 }
 
+
+ 
 AXIS2_EXTERN axis2_char_t * AXIS2_CALL
 trust_rst_get_attr_context(
         trust_rst_t *rst,
@@ -865,6 +869,30 @@
     return AXIS2_FAILURE;
 }
 
+
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL
+trust_rst_get_wsa_action(                
+		trust_rst_t *rst,
+		const axutil_env_t *env)
+{
+	return rst->wsa_action;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+trust_rst_set_wsa_action(
+		trust_rst_t *rst,
+		const axutil_env_t *env,
+		axis2_char_t *wsa_action)
+{
+	if(wsa_action)
+	{
+		rst->wsa_action = wsa_action;
+		return AXIS2_SUCCESS;
+	}
+	return AXIS2_FAILURE;
+}
+
+
 AXIS2_EXTERN axis2_char_t * AXIS2_CALL
 trust_rst_get_applies_to_addr(
         trust_rst_t *rst,
@@ -1266,5 +1294,6 @@
 {
     return;
 }
+
 
 

Modified: webservices/rampart/trunk/c/src/trust/sts_client.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/trust/sts_client.c?rev=627229&r1=627228&r2=627229&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/trust/sts_client.c (original)
+++ webservices/rampart/trunk/c/src/trust/sts_client.c Tue Feb 12 19:13:28 2008
@@ -116,6 +116,7 @@
     /*Action Logic*/
     trust_rst_t *rst = NULL;
     axis2_char_t *request_type = NULL;
+    axis2_char_t *wsa_action = NULL;
     
     if(sts_client->issuer_policy_location && sts_client->service_policy_location)
     {
@@ -142,6 +143,7 @@
     }
 
     request_type = trust_rst_get_request_type(rst, env);
+	wsa_action = trust_rst_get_wsa_action(rst, env);
 
     if(NULL == request_type)
     {
@@ -149,8 +151,13 @@
             return;
     }
 
+	if(NULL == wsa_action)
+	{
+		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] RST-WSA-Action is NOT set");
+	}
+
     sts_client->svc_client =
-    trust_sts_client_get_svc_client(sts_client, env, request_type);
+    trust_sts_client_get_svc_client(sts_client, env, wsa_action);
 														  
 
     if (status == AXIS2_SUCCESS)
@@ -370,6 +377,7 @@
     /*Action Logic*/
     trust_rst_t *rst = NULL;
     axis2_char_t *request_type = NULL;
+    axis2_char_t *wsa_action = NULL;
     
     trust_sts_client_process_policies(sts_client, env, issuer_policy, issuer_policy);
  
@@ -382,6 +390,7 @@
     }
 
     request_type = trust_rst_get_request_type(rst, env);
+    wsa_action = trust_rst_get_wsa_action(rst, env);
 
     if(NULL == request_type)
     {
@@ -389,9 +398,13 @@
             return;
     }
 
-    svc_client =
-    trust_sts_client_get_svc_client(sts_client, env, request_type);
-														  
+	if(NULL == wsa_action)
+	{
+		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] RST-WSA-Action is NOT set");
+	}
+
+    sts_client->svc_client =
+    trust_sts_client_get_svc_client(sts_client, env, wsa_action);														  
 
     if (svc_client)
     {
@@ -442,4 +455,5 @@
 
     return;
 }
+