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;
}
+