Author: kaushalye
Date: Wed Nov 14 21:27:21 2007
New Revision: 595210

URL: http://svn.apache.org/viewvc?rev=595210&view=rev
Log:
Signature confirmation processing. Using security policies to configure. 

Modified:
    webservices/rampart/trunk/c/include/rampart_context.h
    webservices/rampart/trunk/c/src/util/rampart_context.c
    webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c
    webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c

Modified: webservices/rampart/trunk/c/include/rampart_context.h
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/include/rampart_context.h?rev=595210&r1=595209&r2=595210&view=diff
==============================================================================
--- webservices/rampart/trunk/c/include/rampart_context.h (original)
+++ webservices/rampart/trunk/c/include/rampart_context.h Wed Nov 14 21:27:21 
2007
@@ -582,6 +582,9 @@
         rampart_context_t *rampart_context,
         const axutil_env_t *env);
 
+    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+    rampart_context_is_sig_confirmation_reqd(rampart_context_t 
*rampart_context,
+        const axutil_env_t *env);
 
 #ifdef __cplusplus
 }

Modified: webservices/rampart/trunk/c/src/util/rampart_context.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_context.c?rev=595210&r1=595209&r2=595210&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_context.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_context.c Wed Nov 14 21:27:21 
2007
@@ -1271,6 +1271,26 @@
     return rp_binding_commons_get_algorithmsuite(binding_commons,env);
 }
 
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+rampart_context_is_sig_confirmation_reqd(rampart_context_t *rampart_context,
+    const axutil_env_t *env)
+{
+    rp_property_t *wss = NULL;
+    rp_wss11_t *wss11 = NULL;
+
+    wss = rp_secpolicy_get_wss(rampart_context->secpolicy,env);
+    if(!wss){
+        return AXIS2_FALSE;
+    }
+
+    wss11 = rp_property_get_value(wss,env);
+    if(wss11){
+        return rp_wss11_get_require_signature_confirmation(wss11, env);
+    }else{
+        return AXIS2_FALSE;
+    }
+}
+
 axis2_char_t *AXIS2_CALL
 rampart_context_get_key_identifier_from_wss(
     rampart_context_t *rampart_context,

Modified: webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c?rev=595210&r1=595209&r2=595210&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c Wed Nov 
14 21:27:21 2007
@@ -253,7 +253,8 @@
     /*Signature Confirmation support. Only in the server side*/
     if(axis2_msg_ctx_get_server_side(msg_ctx,env)){
         axis2_bool_t sign_conf_reqd = AXIS2_FALSE;
-        /*TODO sign_conf_reqd <- Get from context <- policy*/
+        /*Sign_conf_reqd <- Get from context <- policy*/
+        sign_conf_reqd = 
rampart_context_is_sig_confirmation_reqd(rampart_context, env);
         if(sign_conf_reqd){
             status = rampart_sig_confirm_signature(env, msg_ctx, 
rampart_context, sec_node);
         }

Modified: webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c?rev=595210&r1=595209&r2=595210&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c 
(original)
+++ webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c Wed Nov 
14 21:27:21 2007
@@ -1359,6 +1359,7 @@
     return AXIS2_SUCCESS; 
 }
 
+
 /*Public functions*/
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL


Reply via email to