You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ka...@apache.org on 2007/02/26 11:36:49 UTC
svn commit: r511773 [2/2] - in /webservices/axis2/trunk/c/rampart: include/
samples/secpolicy/scenario1/ samples/secpolicy/scenario2/
samples/secpolicy/scenario3/ samples/secpolicy/scenario4/
samples/secpolicy/scenario5/ samples/secpolicy/scenario6/ sa...
Modified: webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-incoming-secpolicy.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-incoming-secpolicy.xml?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-incoming-secpolicy.xml (original)
+++ webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-incoming-secpolicy.xml Mon Feb 26 02:36:47 2007
@@ -33,30 +33,30 @@
</sp:Layout>
<sp:IncludeTimestamp/>
<sp:EncryptBeforeSigning/>
- <sp:OnlySignEntireHeadersAndBody/>
</wsp:Policy>
</sp:AsymmetricBinding>
+ <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always"/>
+ </wsp:Policy>
+ </sp:SignedSupportingTokens>
<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <wsp:Policy>
+ <wsp:Policy>
<sp:MustSupportRefEmbeddedToken/>
</wsp:Policy>
- </sp:Wss10>
- <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <sp:Body/>
+ </sp:Wss10>
+ <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
</sp:EncryptedParts>
<rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
- <rampc:user>Gampola</rampc:user>
- <rampc:encryptionUser>a</rampc:encryptionUser>
- <rampc:passwordType>Digest</rampc:passwordType>
- <rampc:passwordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:passwordCallbackClass>
- <rampc:signatureCrypto>
- <rampc:signaturePropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:signaturePropFile>
- </rampc:signatureCrypto>
- <rampc:encryptionCypto>
- <rampc:encryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:encryptionPropFile>
- <rampc:decryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/a_store.pfx</rampc:decryptionPropFile>
- </rampc:encryptionCypto>
- </rampc:RampartConfig>
+ <rampc:User>Gampola</rampc:User>
+ <rampc:TimeToLive>360</rampc:TimeToLive>
+ <rampc:EncryptionUser>a</rampc:EncryptionUser>
+ <rampc:PasswordType>Digest</rampc:PasswordType>
+ <rampc:PasswordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+ <rampc:PublicKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:PublicKey>
+ <rampc:PrivateKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/a_store.pfx</rampc:PrivateKey>
+ </rampc:RampartConfig>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Modified: webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-outgoing-secpolicy.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-outgoing-secpolicy.xml?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-outgoing-secpolicy.xml (original)
+++ webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-outgoing-secpolicy.xml Mon Feb 26 02:36:47 2007
@@ -33,7 +33,6 @@
</sp:Layout>
<sp:IncludeTimestamp/>
<sp:EncryptBeforeSigning/>
- <sp:OnlySignEntireHeadersAndBody/>
</wsp:Policy>
</sp:AsymmetricBinding>
<sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
@@ -43,25 +42,21 @@
</sp:SignedSupportingTokens>
<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
- <sp:MustSupportRefEmbeddedToken/>
+ <sp:MustSupportRefEmbeddedToken/>
</wsp:Policy>
</sp:Wss10>
<sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<sp:Body/>
</sp:EncryptedParts>
<rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
- <rampc:user>Gampola</rampc:user>
- <rampc:encryptionUser>a</rampc:encryptionUser>
- <rampc:passwordType>Digest</rampc:passwordType>
- <rampc:passwordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:passwordCallbackClass>
- <rampc:signatureCrypto>
- <rampc:signaturePropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:signaturePropFile>
- </rampc:signatureCrypto>
- <rampc:encryptionCypto>
- <rampc:encryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:encryptionPropFile>
- <rampc:decryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/a_store.pfx</rampc:decryptionPropFile>
- </rampc:encryptionCypto>
- </rampc:RampartConfig>
+ <rampc:User>Gampola</rampc:User>
+ <rampc:TimeToLive>360</rampc:TimeToLive>
+ <rampc:EncryptionUser>a</rampc:EncryptionUser>
+ <rampc:PasswordType>Digest</rampc:PasswordType>
+ <rampc:PasswordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+ <rampc:PublicKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:PublicKey>
+ <rampc:PrivateKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/a_store.pfx</rampc:PrivateKey>
+ </rampc:RampartConfig>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Modified: webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-incoming-secpolicy.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-incoming-secpolicy.xml?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-incoming-secpolicy.xml (original)
+++ webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-incoming-secpolicy.xml Mon Feb 26 02:36:47 2007
@@ -33,7 +33,6 @@
</sp:Layout>
<sp:IncludeTimestamp/>
<sp:EncryptBeforeSigning/>
- <sp:OnlySignEntireHeadersAndBody/>
</wsp:Policy>
</sp:AsymmetricBinding>
<sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
@@ -42,27 +41,22 @@
</wsp:Policy>
</sp:SignedSupportingTokens>
<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <wsp:Policy>
+ <wsp:Policy>
<sp:MustSupportRefEmbeddedToken/>
- <sp:MustSupportRefIssuerSerial/>
</wsp:Policy>
- </sp:Wss10>
- <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <sp:Body/>
+ </sp:Wss10>
+ <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
</sp:EncryptedParts>
<rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
- <rampc:user>Gampola</rampc:user>
- <rampc:encryptionUser>b</rampc:encryptionUser>
- <rampc:passwordType>Digest</rampc:passwordType>
- <rampc:passwordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:passwordCallbackClass>
- <rampc:signatureCrypto>
- <rampc:signaturePropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:signaturePropFile>
- </rampc:signatureCrypto>
- <rampc:encryptionCypto>
- <rampc:encryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/a_cert.cert</rampc:encryptionPropFile>
- <rampc:decryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/b_store.pfx</rampc:decryptionPropFile>
- </rampc:encryptionCypto>
- </rampc:RampartConfig>
+ <rampc:User>Gampola</rampc:User>
+ <rampc:TimeToLive>360</rampc:TimeToLive>
+ <rampc:EncryptionUser>b</rampc:EncryptionUser>
+ <rampc:PasswordType>Digest</rampc:PasswordType>
+ <rampc:PasswordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+ <rampc:PublicKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/a_cert.cert</rampc:PublicKey>
+ <rampc:PrivateKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/b_store.pfx</rampc:PrivateKey>
+ </rampc:RampartConfig>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Modified: webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-outgoing-secpolicy.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-outgoing-secpolicy.xml?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-outgoing-secpolicy.xml (original)
+++ webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-outgoing-secpolicy.xml Mon Feb 26 02:36:47 2007
@@ -33,31 +33,30 @@
</sp:Layout>
<sp:IncludeTimestamp/>
<sp:EncryptBeforeSigning/>
- <sp:OnlySignEntireHeadersAndBody/>
</wsp:Policy>
</sp:AsymmetricBinding>
+ <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always"/>
+ </wsp:Policy>
+ </sp:SignedSupportingTokens>
<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <wsp:Policy>
+ <wsp:Policy>
<sp:MustSupportRefEmbeddedToken/>
- <sp:MustSupportRefIssuerSerial/>
</wsp:Policy>
- </sp:Wss10>
- <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <sp:Body/>
+ </sp:Wss10>
+ <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
</sp:EncryptedParts>
<rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
- <rampc:user>Gampola</rampc:user>
- <rampc:encryptionUser>b</rampc:encryptionUser>
- <rampc:passwordType>Digest</rampc:passwordType>
- <rampc:passwordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:passwordCallbackClass>
- <rampc:signatureCrypto>
- <rampc:signaturePropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:signaturePropFile>
- </rampc:signatureCrypto>
- <rampc:encryptionCypto>
- <rampc:encryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/a_cert.cert</rampc:encryptionPropFile>
- <rampc:decryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/b_store.pfx</rampc:decryptionPropFile>
- </rampc:encryptionCypto>
- </rampc:RampartConfig>
+ <rampc:User>Gampola</rampc:User>
+ <rampc:TimeToLive>360</rampc:TimeToLive>
+ <rampc:EncryptionUser>b</rampc:EncryptionUser>
+ <rampc:PasswordType>Digest</rampc:PasswordType>
+ <rampc:PasswordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+ <rampc:PublicKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/a_cert.cert</rampc:PublicKey>
+ <rampc:PrivateKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/b_store.pfx</rampc:PrivateKey>
+ </rampc:RampartConfig>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Modified: webservices/axis2/trunk/c/rampart/src/handlers/rampart_in_handler.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/handlers/rampart_in_handler.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/handlers/rampart_in_handler.c (original)
+++ webservices/axis2/trunk/c/rampart/src/handlers/rampart_in_handler.c Mon Feb 26 02:36:47 2007
@@ -108,7 +108,7 @@
}
AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "SOAP header found");
- rampart_context = rampart_engine_init(env,msg_ctx,RAMPART_INFLOW_SECURITY_POLICY);
+ rampart_context = rampart_engine_init(env,msg_ctx,AXIS2_TRUE);
if(!rampart_context)
return AXIS2_FAILURE;
@@ -130,7 +130,9 @@
status = rampart_shp_process_message(env, msg_ctx, rampart_context,
soap_envelope, sec_node);
-
+
+ status = rampart_engine_shutdown(env,rampart_context);
+
/*
rampart_context_free(rampart_context,env);
rampart_context = NULL;
Modified: webservices/axis2/trunk/c/rampart/src/handlers/rampart_out_handler.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/handlers/rampart_out_handler.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/handlers/rampart_out_handler.c (original)
+++ webservices/axis2/trunk/c/rampart/src/handlers/rampart_out_handler.c Mon Feb 26 02:36:47 2007
@@ -75,23 +75,12 @@
axiom_element_t *soap_header_ele = NULL;
axis2_status_t status = AXIS2_FAILURE;
rampart_context_t *rampart_context = NULL;
-/* rp_secpolicy_t *secpolicy = NULL;*/
-/* axis2_char_t *file_name = "/home/manjula/axis2/scratch/security-policy/c/rampart/src/secpolicy/test-resources/2.xml";*/
-/* axis2_char_t *file_name = NULL;*/
axis2_bool_t serverside = AXIS2_FALSE;
-
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
serverside = axis2_msg_ctx_get_server_side(msg_ctx,env);
-/*
- if(serverside)
- file_name = "/home/manjula/axis2/scratch/security-policy/c/rampart/src/secpolicy/test-resources/outgoing_policy.xml";
-
- else
- file_name = "/home/manjula/axis2/scratch/security-policy/c/deploy/client_repo/outgoing_policy.xml";
-*/
soap_envelope = AXIS2_MSG_CTX_GET_SOAP_ENVELOPE(msg_ctx, env);
if (!soap_envelope)
{
@@ -121,7 +110,7 @@
}
soap_header_ele = (axiom_element_t *)AXIOM_NODE_GET_DATA_ELEMENT(soap_header_node,env);
- rampart_context = rampart_engine_init(env,msg_ctx,RAMPART_OUTFLOW_SECURITY_POLICY);
+ rampart_context = rampart_engine_init(env,msg_ctx,AXIS2_FALSE);
if(!rampart_context)
return AXIS2_FAILURE;
@@ -130,9 +119,9 @@
if(AXIS2_FAILURE == status){
AXIS2_LOG_INFO(env->log,
"[rampart][rampart_out_handler] Security header building failed ERROR");
+ rampart_engine_shutdown(env,rampart_context);
}
+ status = rampart_engine_shutdown(env,rampart_context);
}
-
return status;
-
}
Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/builder/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/builder/Makefile.am?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/builder/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/builder/Makefile.am Mon Feb 26 02:36:47 2007
@@ -2,9 +2,9 @@
noinst_LTLIBRARIES = librp_builder.la
-librp_builder_la_SOURCES = algorithmsuite_builder.c asymmetric_binding_builder.c binding_commons_builder.c encryption_crypto_builder.c \
+librp_builder_la_SOURCES = algorithmsuite_builder.c asymmetric_binding_builder.c binding_commons_builder.c \
https_token_builder.c layout_builder.c qname_matcher.c rampart_config_builder.c secpolicy_builder.c \
- security_context_token_builder.c signature_crypto_builder.c signed_encrypted_elements_builder.c \
+ security_context_token_builder.c signed_encrypted_elements_builder.c \
signed_encrypted_parts_builder.c supporting_tokens_builder.c symmetric_asymmetric_commons_builder.c \
symmetric_binding_builder.c token_builder.c transport_binding_builder.c username_token_builder.c \
wss10_builder.c wss11_builder.c x509_token_builder.c policy_creator.c
Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/builder/policy_creator.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/builder/policy_creator.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/builder/policy_creator.c (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/builder/policy_creator.c Mon Feb 26 02:36:47 2007
@@ -1,8 +1,7 @@
#include <rp_layout.h>
-/*#include <rp_secpolicy.h>*/
#include <rp_secpolicy_builder.h>
#include <rp_policy_creator.h>
-
+#include <rp_qname_matcher.h>
AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL
rp_policy_create_from_file(
@@ -14,11 +13,7 @@
axiom_stax_builder_t *builder = NULL;
axiom_document_t *document = NULL;
axiom_node_t *root = NULL;
- axiom_element_t *all_ele = NULL;
axiom_element_t *root_ele = NULL;
- axiom_node_t *exat_node = NULL;
- axiom_element_t *exat_ele = NULL;
- axiom_node_t *all_node = NULL;
rp_secpolicy_t *secpolicy = NULL;
reader = axiom_xml_reader_create_for_file(env,filename,NULL);
@@ -62,6 +57,38 @@
else
return NULL;
}
+ secpolicy = rp_policy_create_from_om_node(env,root);
+
+ return secpolicy;
+
+}
+
+
+AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL
+rp_policy_create_from_om_node(
+ const axis2_env_t *env,
+ axiom_node_t *root)
+{
+
+ axiom_element_t *all_ele = NULL;
+ axiom_element_t *root_ele = NULL;
+ axiom_node_t *exat_node = NULL;
+ axiom_element_t *exat_ele = NULL;
+ axiom_node_t *all_node = NULL;
+ rp_secpolicy_t *secpolicy = NULL;
+
+
+ if(AXIOM_NODE_GET_NODE_TYPE(root, env) == AXIOM_ELEMENT)
+ {
+ root_ele = (axiom_element_t*)AXIOM_NODE_GET_DATA_ELEMENT (root, env);
+ if(root_ele)
+ {
+
+ }
+ }
+ else
+ return NULL;
+
exat_node = AXIOM_NODE_GET_FIRST_CHILD(root,env);
if(exat_node)
{
@@ -95,3 +122,5 @@
return secpolicy;
}
+
+
Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/builder/qname_matcher.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/builder/qname_matcher.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/builder/qname_matcher.c (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/builder/qname_matcher.c Mon Feb 26 02:36:47 2007
@@ -51,6 +51,43 @@
}
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+rp_match_policy_qname(
+ const axis2_env_t *env,
+ const axis2_char_t *local_name,
+ axiom_node_t *node,
+ axiom_element_t *element)
+{
+
+ axis2_qname_t *qname = NULL;
+ axis2_qname_t *node_qname = NULL;
+
+ AXIS2_ENV_CHECK(env,AXIS2_FALSE);
+
+ qname = axis2_qname_create(env,local_name,RP_POLICY_NS,RP_POLICY_PREFIX);
+ if(!qname)
+ return AXIS2_FALSE;
+
+ node_qname = AXIOM_ELEMENT_GET_QNAME(element,env,node);
+
+ if(!node_qname)
+ {
+ AXIS2_QNAME_FREE(qname,env);
+ qname = NULL;
+ return AXIS2_FALSE;
+ }
+
+ if(AXIS2_QNAME_EQUALS(qname,env,node_qname))
+ {
+ AXIS2_QNAME_FREE(qname,env);
+ qname = NULL;
+ return AXIS2_TRUE;
+ }
+
+ return AXIS2_FALSE;
+}
+
+
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_match_rampart_config_qname(
const axis2_env_t *env,
const axis2_char_t *local_name,
Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/builder/rampart_config_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/builder/rampart_config_builder.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/builder/rampart_config_builder.c (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/builder/rampart_config_builder.c Mon Feb 26 02:36:47 2007
@@ -146,30 +146,35 @@
return AXIS2_FAILURE;
}
- else if(AXIS2_STRCMP(local_name,RP_SIGNATURE_CRYPTO)==0)
+ else if(AXIS2_STRCMP(local_name,RP_PUBLIC_KEY)==0)
{
- if(rp_match_rampart_config_qname(env,RP_SIGNATURE_CRYPTO,node,element))
+ if(rp_match_rampart_config_qname(env,RP_PUBLIC_KEY,node,element))
{
- rp_signature_crypto_t *signature_crypto = NULL;
- signature_crypto = rp_signature_crypto_builder_build(env,node);
- if(!signature_crypto)
- return AXIS2_FAILURE;
-
- return rp_rampart_config_set_signature_crypto(rampart_config,env,signature_crypto);
+ axis2_char_t *public_key_file = NULL;
+ public_key_file = AXIOM_ELEMENT_GET_TEXT(element,env,node);
+ return rp_rampart_config_set_public_key_file(rampart_config,env,public_key_file);
}
else
return AXIS2_FAILURE;
}
- else if(AXIS2_STRCMP(local_name,RP_ENCRYPTION_CRYPTO)==0)
+ else if(AXIS2_STRCMP(local_name,RP_PRIVATE_KEY)==0)
{
- if(rp_match_rampart_config_qname(env,RP_ENCRYPTION_CRYPTO,node,element))
+ if(rp_match_rampart_config_qname(env,RP_PRIVATE_KEY,node,element))
{
- rp_encryption_crypto_t *encryption_crypto = NULL;
- encryption_crypto = rp_encryption_crypto_builder_build(env,node);
- if(!encryption_crypto)
- return AXIS2_FAILURE;
-
- return rp_rampart_config_set_encryption_crypto(rampart_config,env,encryption_crypto);
+ axis2_char_t *private_key_file = NULL;
+ private_key_file = AXIOM_ELEMENT_GET_TEXT(element,env,node);
+ return rp_rampart_config_set_private_key_file(rampart_config,env,private_key_file);
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ else if(AXIS2_STRCMP(local_name,RP_TIME_TO_LIVE)==0)
+ {
+ if(rp_match_rampart_config_qname(env,RP_TIME_TO_LIVE,node,element))
+ {
+ axis2_char_t *time_to_live = NULL;
+ time_to_live = AXIOM_ELEMENT_GET_TEXT(element,env,node);
+ return rp_rampart_config_set_time_to_live(rampart_config,env,time_to_live);
}
else
return AXIS2_FAILURE;
Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/model/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/model/Makefile.am?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/model/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/model/Makefile.am Mon Feb 26 02:36:47 2007
@@ -3,8 +3,8 @@
noinst_LTLIBRARIES = librp_model.la
librp_model_la_SOURCES = algorithmsuite.c asymmetric_binding.c \
- binding_commons.c encryption_crypto.c header.c https_token.c layout.c \
- property.c rampart_config.c secpolicy.c security_context_token.c signature_crypto.c \
+ binding_commons.c header.c https_token.c layout.c \
+ property.c rampart_config.c secpolicy.c security_context_token.c \
signed_encrypted_elements.c signed_encrypted_parts.c supporting_tokens.c symmetric_asymmetric_binding_commons.c \
symmetric_binding.c transport_binding.c ut.c wss10.c wss11.c x509_token.c
Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/model/rampart_config.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/model/rampart_config.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/model/rampart_config.c (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/model/rampart_config.c Mon Feb 26 02:36:47 2007
@@ -25,8 +25,9 @@
axis2_char_t *password_callback_class;
axis2_char_t *authenticate_module;
axis2_char_t *password_type;
- rp_signature_crypto_t *signature_crypto;
- rp_encryption_crypto_t *encryption_crypto;
+ axis2_char_t *time_to_live;
+ axis2_char_t *public_key_file;
+ axis2_char_t *private_key_file;
};
AXIS2_EXTERN rp_rampart_config_t *AXIS2_CALL
@@ -47,10 +48,11 @@
rampart_config->user = NULL;
rampart_config->encryption_user = NULL;
rampart_config->password_callback_class = NULL;
- rampart_config->signature_crypto = NULL;
- rampart_config->encryption_crypto = NULL;
+ rampart_config->private_key_file = NULL;
+ rampart_config->public_key_file = NULL;
rampart_config->authenticate_module = NULL;
rampart_config->password_type = NULL;
+ rampart_config->time_to_live = NULL;
return rampart_config;
}
@@ -62,16 +64,6 @@
if(rampart_config)
{
- if(rampart_config->encryption_crypto)
- {
- rp_encryption_crypto_free(rampart_config->encryption_crypto,env);
- rampart_config->encryption_crypto = NULL;
- }
- if(rampart_config->signature_crypto)
- {
- rp_signature_crypto_free(rampart_config->signature_crypto,env);
- rampart_config->signature_crypto = NULL;
- }
AXIS2_FREE(env->allocator,rampart_config);
rampart_config = NULL;
}
@@ -193,46 +185,69 @@
}
-AXIS2_EXTERN rp_signature_crypto_t *AXIS2_CALL
-rp_rampart_config_get_signature_crypto(
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_rampart_config_get_private_key_file(
rp_rampart_config_t *rampart_config,
const axis2_env_t *env)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- return rampart_config->signature_crypto;
+ return rampart_config->private_key_file;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rp_rampart_config_set_signature_crypto(rp_rampart_config_t *rampart_config,
+rp_rampart_config_set_private_key_file(rp_rampart_config_t *rampart_config,
const axis2_env_t *env,
- rp_signature_crypto_t *signature_crypto)
+ axis2_char_t *private_key_file)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error,signature_crypto,AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,private_key_file,AXIS2_FAILURE);
- rampart_config->signature_crypto = signature_crypto;
+ rampart_config->private_key_file = private_key_file;
return AXIS2_SUCCESS;
}
-AXIS2_EXTERN rp_encryption_crypto_t *AXIS2_CALL
-rp_rampart_config_get_encryption_crypto(
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_rampart_config_get_public_key_file(
+ rp_rampart_config_t *rampart_config,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return rampart_config->public_key_file;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_rampart_config_set_public_key_file(rp_rampart_config_t *rampart_config,
+ const axis2_env_t *env,
+ axis2_char_t *public_key_file)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,public_key_file,AXIS2_FAILURE);
+
+ rampart_config->public_key_file = public_key_file;
+ return AXIS2_SUCCESS;
+}
+
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_rampart_config_get_time_to_live(
rp_rampart_config_t *rampart_config,
const axis2_env_t *env)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- return rampart_config->encryption_crypto;
+ return rampart_config->time_to_live;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rp_rampart_config_set_encryption_crypto(rp_rampart_config_t *rampart_config,
+rp_rampart_config_set_time_to_live(rp_rampart_config_t *rampart_config,
const axis2_env_t *env,
- rp_encryption_crypto_t *encryption_crypto)
+ axis2_char_t *time_to_live)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error,encryption_crypto,AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,time_to_live,AXIS2_FAILURE);
- rampart_config->encryption_crypto = encryption_crypto;
+ rampart_config->time_to_live = time_to_live;
return AXIS2_SUCCESS;
}
Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_context.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_context.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_context.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_context.c Mon Feb 26 02:36:47 2007
@@ -20,21 +20,48 @@
#include <oxs_axiom.h>
-
-
+/*
struct rampart_context_t
{
rp_secpolicy_t *secpolicy;
rampart_callback_t* password_callback_module;
rampart_authn_provider_t *authn_provider;
-
- /*Function pointers for php extension to assign*/
pfunc password_func;
auth_password_func authenticate_with_password;
auth_digest_func authenticate_with_digest;
};
+*/
+struct rampart_context_t
+{
+ /*PHP extension will set these members*/
+ axiom_node_t *policy_node;
+ void *prv_key;
+ axis2_key_type_t prv_key_type;
+ void *pub_key;
+ axis2_key_type_t pub_key_type;
+ axis2_char_t *user;
+ axis2_char_t *password;
+ axis2_char_t *prv_key_password;
+ password_callback_fn pwcb_function;
+ int ttl;
+ axis2_char_t *password_type;
+ /*Rampart specific members*/
+ rp_secpolicy_t *secpolicy;
+ rampart_callback_t *password_callback_module;
+ rampart_authn_provider_t *authn_provider;
+ auth_password_func authenticate_with_password;
+ auth_digest_func authenticate_with_digest;
+
+};
+
+/*void rampart_context_set_callback_fn(axis2_env_t *env,
+ axis2_char_t *(*callback)(
+ axis2_env_t *env,
+ axis2_char_t *user ,
+ void *ctx), void *ctx);
+*/
/*private functions*/
rp_symmetric_asymmetric_binding_commons_t
@@ -87,13 +114,24 @@
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
+ rampart_context->policy_node = NULL;
+ rampart_context->prv_key = NULL;
+ rampart_context->prv_key_type = 0;
+ rampart_context->pub_key = NULL;
+ rampart_context->pub_key_type = 0;
+ rampart_context->user = 0;
+ rampart_context->password = NULL;
+ rampart_context->prv_key_password = NULL;
+ rampart_context->pwcb_function = NULL;
+ rampart_context->ttl = 0;
+ rampart_context->password_type = NULL;
+
rampart_context->secpolicy = NULL;
- rampart_context->password_callback_module = NULL;
+ rampart_context->password_callback_module = NULL;
rampart_context->authn_provider = NULL;
- rampart_context->password_func = NULL;
rampart_context->authenticate_with_password = NULL;
rampart_context->authenticate_with_digest = NULL;
-
+
return rampart_context;
}
@@ -119,74 +157,308 @@
/* Implementations */
-AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL
-rampart_context_get_secpolicy(
- rampart_context_t *rampart_context,
- const axis2_env_t *env)
+/*Implementation of PHP-rampart interface */
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_policy_node(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ axiom_node_t *policy_node)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,policy_node,AXIS2_FAILURE);
+
+ rampart_context->policy_node = policy_node;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_prv_key(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ void *prv_key)
+{
- return rampart_context->secpolicy;
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,prv_key,AXIS2_FAILURE);
+
+ rampart_context->prv_key = prv_key;
+ return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rampart_context_set_secpolicy(rampart_context_t *rampart_context,
+rampart_context_set_prv_key_type(rampart_context_t *rampart_context,
const axis2_env_t *env,
- rp_secpolicy_t *secpolicy)
+ axis2_key_type_t type)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error,secpolicy,AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,type,AXIS2_FAILURE);
- rampart_context->secpolicy = secpolicy;
+ rampart_context->prv_key_type = type;
return AXIS2_SUCCESS;
}
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_pub_key(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ void *pub_key)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,pub_key,AXIS2_FAILURE);
-AXIS2_EXTERN rampart_callback_t *AXIS2_CALL
-rampart_context_get_password_callback(
+ rampart_context->pub_key = pub_key;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_pub_key_type(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ axis2_key_type_t type)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,type,AXIS2_FAILURE);
+
+ rampart_context->pub_key_type = type;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_user(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ axis2_char_t *user)
+{
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,user,AXIS2_FAILURE);
+
+ rampart_context->user = user;
+ return AXIS2_SUCCESS;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_password(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ axis2_char_t *password)
+{
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,password,AXIS2_FAILURE);
+
+ rampart_context->password = password;
+ return AXIS2_SUCCESS;
+}
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_prv_key_password(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ axis2_char_t *prv_key_password)
+{
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,prv_key_password,AXIS2_FAILURE);
+
+ rampart_context->prv_key_password = prv_key_password;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_pwcb_function(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ password_callback_fn pwcb_function,
+ void *ctx)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,pwcb_function,AXIS2_FAILURE);
+
+ rampart_context->pwcb_function = pwcb_function;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_password_type(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ axis2_char_t *password_type)
+{
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,password_type,AXIS2_FAILURE);
+
+ rampart_context->password_type = password_type;
+ return AXIS2_SUCCESS;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_ttl(rampart_context_t *rampart_context,
+ const axis2_env_t *env,
+ int ttl)
+{
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,ttl,AXIS2_FAILURE);
+
+ rampart_context->ttl = ttl;
+ return AXIS2_SUCCESS;
+}
+
+/*End of implementation*/
+
+/*Getters of the PHP-RAMPART interface*/
+
+AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+rampart_context_get_policy_node(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return rampart_context->policy_node;
+}
+
+AXIS2_EXTERN void *AXIS2_CALL
+rampart_context_get_prv_key(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return rampart_context->prv_key;
+}
+
+AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
+rampart_context_get_prv_key_type(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return rampart_context->prv_key_type;
+}
+
+AXIS2_EXTERN void *AXIS2_CALL
+rampart_context_get_pub_key(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return rampart_context->pub_key;
+}
+
+AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
+rampart_context_get_pub_key_type(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return rampart_context->pub_key_type;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rampart_context_get_user(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ return rampart_context->user;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rampart_context_get_password(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return rampart_context->password;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rampart_context_get_prv_key_password(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return rampart_context->prv_key_password;
+}
+
+AXIS2_EXTERN password_callback_fn AXIS2_CALL
+rampart_context_get_pwcb_function(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ return rampart_context->pwcb_function;
+}
+
+AXIS2_EXTERN int AXIS2_CALL
+rampart_context_get_ttl(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+
+ return rampart_context->ttl;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rampart_context_get_password_type(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ AXIS2_ENV_CHECK(env,NULL);
+
+ return rampart_context->password_type;
+}
+
+/*End of getters*/
+
+AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL
+rampart_context_get_secpolicy(
rampart_context_t *rampart_context,
const axis2_env_t *env)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- return rampart_context->password_callback_module;
+ return rampart_context->secpolicy;
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rampart_context_set_password_callback(rampart_context_t *rampart_context,
+rampart_context_set_secpolicy(rampart_context_t *rampart_context,
const axis2_env_t *env,
- rampart_callback_t *password_callback_module)
+ rp_secpolicy_t *secpolicy)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error,password_callback_module,AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,secpolicy,AXIS2_FAILURE);
- rampart_context->password_callback_module = password_callback_module;
+ rampart_context->secpolicy = secpolicy;
return AXIS2_SUCCESS;
}
-/*This function get the function pointer of the password callback function*/
-AXIS2_EXTERN pfunc AXIS2_CALL
-rampart_context_get_password_function(
+AXIS2_EXTERN rampart_callback_t *AXIS2_CALL
+rampart_context_get_password_callback(
rampart_context_t *rampart_context,
const axis2_env_t *env)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- return rampart_context->password_func;
+ return rampart_context->password_callback_module;
}
-/*set the password callback function*/
-
AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rampart_context_set_password_function(rampart_context_t *rampart_context,
+rampart_context_set_password_callback(rampart_context_t *rampart_context,
const axis2_env_t *env,
- pfunc password_func)
+ rampart_callback_t *password_callback_module)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error,password_func,AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error,password_callback_module,AXIS2_FAILURE);
- rampart_context->password_func = password_func;
+ rampart_context->password_callback_module = password_callback_module;
return AXIS2_SUCCESS;
}
@@ -649,8 +921,9 @@
return rampart_context_use_username_token(signed_supporting,env);
}
-AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-rampart_context_get_user(
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_user_from_file(
rampart_context_t *rampart_context,
const axis2_env_t *env)
{
@@ -658,11 +931,13 @@
rp_rampart_config_t *config = NULL;
config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
if(!config)
- return NULL;
+ return AXIS2_FAILURE;
- return rp_rampart_config_get_user(config,env);
+ rampart_context->user = rp_rampart_config_get_user(config,env);
+ return AXIS2_SUCCESS;
}
+
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_password_callback_class(
rampart_context_t *rampart_context,
@@ -689,27 +964,38 @@
return rp_rampart_config_get_authenticate_module(config,env);
}
-AXIS2_EXTERN axis2_bool_t AXIS2_CALL
-rampart_context_get_password_type(
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_password_type_from_file(
rampart_context_t *rampart_context,
const axis2_env_t *env)
{
- axis2_bool_t digest = AXIS2_FALSE;
- axis2_char_t *type = NULL;
rp_rampart_config_t *config = NULL;
-
config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
if(!config)
- return AXIS2_FALSE;
+ return AXIS2_FAILURE;
- type = rp_rampart_config_get_password_type(config,env);
- if(AXIS2_STRCMP(type,RP_DIGEST)==0)
- {
- digest = AXIS2_TRUE;
- return digest;
- }
+ rampart_context->password_type = rp_rampart_config_get_password_type(config,env);
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_ttl_from_file(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ rp_rampart_config_t *config = NULL;
+ axis2_char_t *time_to_live = NULL;
+ config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
+ if(!config)
+ return AXIS2_FAILURE;
+
+ time_to_live = rp_rampart_config_get_time_to_live(config,env);
+ if(!time_to_live)
+ rampart_context->ttl = 300;
else
- return digest;
+ rampart_context->ttl = axis2_atoi(time_to_live);
+
+ return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
@@ -957,53 +1243,36 @@
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-rampart_context_get_encryption_prop_file(
+rampart_context_get_public_key_file(
rampart_context_t *rampart_context,
const axis2_env_t *env)
{
rp_rampart_config_t *rampart_config = NULL;
- rp_encryption_crypto_t *enc_crypto = NULL;
rampart_config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
if(rampart_config)
{
- enc_crypto = rp_rampart_config_get_encryption_crypto(rampart_config,env);
- if(enc_crypto)
- {
- return rp_encryption_crypto_get_encryption_prop_file(enc_crypto,env);
- }
- else
- return NULL;
+ return rp_rampart_config_get_public_key_file(rampart_config,env);
}
else
return NULL;
}
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-rampart_context_get_decryption_prop_file(
+rampart_context_get_private_key_file(
rampart_context_t *rampart_context,
const axis2_env_t *env)
{
rp_rampart_config_t *rampart_config = NULL;
- rp_encryption_crypto_t *enc_crypto = NULL;
rampart_config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
if(rampart_config)
{
- enc_crypto = rp_rampart_config_get_encryption_crypto(rampart_config,env);
- if(enc_crypto)
- {
- return rp_encryption_crypto_get_decryption_prop_file(enc_crypto,env);
- }
- else
- return NULL;
+ return rp_rampart_config_get_private_key_file(rampart_config,env);
}
else
return NULL;
}
-
-
-
AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rampart_context_get_encryption_user(
Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c Mon Feb 26 02:36:47 2007
@@ -38,6 +38,7 @@
#include <oxs_axiom.h>
#include <oxs_asym_ctx.h>
#include <oxs_xml_encryption.h>
+#include <axis2_key_type.h>
/*Private functions*/
/*
@@ -122,9 +123,9 @@
rp_property_t *token = NULL;
axis2_char_t *enc_user = NULL;
rampart_callback_t *password_callback = NULL;
- pfunc password_function = NULL;
+ password_callback_fn password_function = NULL;
void *param = NULL;
-
+ void *key_buf = NULL;
int i = 0;
/*Get nodes to be encrypted*/
server_side = axis2_msg_ctx_get_server_side(msg_ctx,env);
@@ -205,32 +206,36 @@
/*Get the asymmetric key encryption algorithm*/
enc_asym_algo = rampart_context_get_enc_asym_algo(rampart_context,env);
/*Get the certificate file name*/
- certificate_file = rampart_context_get_encryption_prop_file(rampart_context,env);
-
/*Get the password to retrieve the key from key store*/
- enc_user = rampart_context_get_encryption_user(rampart_context,env);
- if(!enc_user)
- enc_user = rampart_context_get_user(rampart_context,env);
+ password = rampart_context_get_prv_key_password(rampart_context,env);
- if(!enc_user)
- return AXIS2_FAILURE;
+ if(!password)
+ {
+ enc_user = rampart_context_get_encryption_user(rampart_context,env);
- password_function = rampart_context_get_password_function(rampart_context,env);
- if(password_function)
- password = (*password_function)(env,enc_user,param);
+ if(!enc_user)
+ enc_user = rampart_context_get_user(rampart_context,env);
- else
- {
- password_callback = rampart_context_get_password_callback(rampart_context,env);
- if(!password_callback)
+ if(!enc_user)
+ return AXIS2_FAILURE;
+
+ password_function = rampart_context_get_pwcb_function(rampart_context,env);
+ if(password_function)
+ password = (*password_function)(env,enc_user,param);
+
+ else
{
- AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] Password call back module is not loaded.");
- return AXIS2_FAILURE;
- }
- password = rampart_callback_password(env, password_callback, enc_user);
- }
+ password_callback = rampart_context_get_password_callback(rampart_context,env);
+ if(!password_callback)
+ {
+ AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] Password call back module is not loaded.");
+ return AXIS2_FAILURE;
+ }
+ password = rampart_callback_password(env, password_callback, enc_user);
+ }
+ }
/* password = rampart_callback_encuser_password(env, actions, msg_ctx);*/
/*Get encryption key identifier*/
eki = rampart_context_get_enc_key_identifier(rampart_context,token,server_side,env);
@@ -239,23 +244,40 @@
AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] The token is not needed for inclusion.");
return AXIS2_SUCCESS;
}
+
/*Create asymmetric encryption context*/
asym_ctx = oxs_asym_ctx_create(env);
oxs_asym_ctx_set_algorithm(asym_ctx, env, enc_asym_algo);
- oxs_asym_ctx_set_file_name(asym_ctx, env, certificate_file);
+
+ /*First check whether the public key is set*/
+ key_buf = rampart_context_get_pub_key(rampart_context,env);
+ if(key_buf)
+ {
+ axis2_key_type_t type = 0;
+ type = rampart_context_get_pub_key_type(rampart_context,env);
+ if(type == AXIS2_KEY_TYPE_PEM)
+ {
+ oxs_asym_ctx_set_format(asym_ctx, env, OXS_ASYM_CTX_FORMAT_PEM);
+ oxs_asym_ctx_set_pem_buf(asym_ctx, env, (axis2_char_t *)key_buf);
+ }
+ }
+
+ /*Buffer is null load from the file*/
+ else
+ {
+ certificate_file = rampart_context_get_public_key_file(rampart_context,env);
+ oxs_asym_ctx_set_file_name(asym_ctx, env, certificate_file);
+ oxs_asym_ctx_set_format(asym_ctx, env, oxs_util_get_format_by_file_extension(env, certificate_file));
+ }
-/* oxs_asym_ctx_set_pem_buf(asym_ctx, env, RAMPART_ACTIONS_GET_KEY_BUF(actions, env));*/
oxs_asym_ctx_set_password(asym_ctx, env, password);
oxs_asym_ctx_set_operation(asym_ctx, env, OXS_ASYM_CTX_OPERATION_PUB_ENCRYPT);
oxs_asym_ctx_set_st_ref_pattern(asym_ctx, env, eki);
- oxs_asym_ctx_set_format(asym_ctx, env, oxs_util_get_format_by_file_extension(env, certificate_file));
/*Encrypt the session key*/
status = oxs_xml_enc_encrypt_key(env, asym_ctx, sec_node, session_key, id_list);
if(AXIS2_FAILURE == status){
return AXIS2_FAILURE;
}
-
-
return AXIS2_SUCCESS;
}
Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_engine.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_engine.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_engine.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_engine.c Mon Feb 26 02:36:47 2007
@@ -24,29 +24,126 @@
/*This method sets all the configurations
loads required modules and start rampart.*/
+rampart_context_t *AXIS2_CALL
+get_rampart_context_with_secpolicy_from_om(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env);
+
+rampart_context_t *AXIS2_CALL
+build_rampart_context_from_file(
+ const axis2_env_t *env,
+ axis2_char_t *file_name);
+
AXIS2_EXTERN rampart_context_t* AXIS2_CALL
rampart_engine_init(const axis2_env_t *env,
axis2_msg_ctx_t *msg_ctx,
- axis2_char_t *x_flow_policy)
+ axis2_bool_t is_inflow)
{
axis2_char_t *file_name = NULL;
rampart_context_t *rampart_context = NULL;
+ void *value = NULL;
+
+ /*First we try to load the rampart_context*
+ *This can be set from an extension like PHP
+ So first extract it from such a scenario.*/
+
+ if(is_inflow)
+ {
+ value = rampart_get_rampart_configuration(env,msg_ctx,INFLOW_RAMPART_CONTEXT);
+ if(value)
+ {
+ rampart_context = (rampart_context_t *)value;
+ if(!rampart_context)
+ {
+ AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Type in the parameter is not rampart_context");
+ return NULL;
+ }
+ return get_rampart_context_with_secpolicy_from_om(rampart_context,env);
+ }
+ else
+ {
+ value = rampart_get_rampart_configuration(env,msg_ctx,RAMPART_INFLOW_SECURITY_POLICY);
+ if(!value)
+ {
+ AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Errors in the configurations");
+ return NULL;
+ }
+ file_name = (axis2_char_t *)value;
+ return build_rampart_context_from_file(env,file_name);
+ }
+ }
+ else
+ {
+ value = rampart_get_rampart_configuration(env,msg_ctx,OUTFLOW_RAMPART_CONTEXT);
+ if(value)
+ {
+ rampart_context = (rampart_context_t *)value;
+ if(!rampart_context)
+ {
+ AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Type in the parameter is not rampart_context");
+ return NULL;
+ }
+ return get_rampart_context_with_secpolicy_from_om(rampart_context,env);
+ }
+ else
+ {
+ value = rampart_get_rampart_configuration(env,msg_ctx,RAMPART_OUTFLOW_SECURITY_POLICY);
+ if(!value)
+ {
+ AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Errors in the configurations");
+ return NULL;
+ }
+ file_name = (axis2_char_t *)value;
+ return build_rampart_context_from_file(env,file_name);
+ }
+ }
+}
+
+rampart_context_t *AXIS2_CALL
+get_rampart_context_with_secpolicy_from_om(
+ rampart_context_t *rampart_context,
+ const axis2_env_t *env)
+{
+ axiom_node_t *policy_node = NULL;
+ rp_secpolicy_t *secpolicy = NULL;
+
+ policy_node = rampart_context_get_policy_node(rampart_context,env);
+ if(!policy_node)
+ {
+ AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Policy node is null.");
+ return NULL;
+ }
+ secpolicy = rp_policy_create_from_om_node(env,policy_node);
+ if(!secpolicy)
+ {
+ AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Cannot create policy from the node");
+ return NULL;
+ }
+ rampart_context_set_secpolicy(rampart_context,env,secpolicy);
+ return rampart_context;
+}
+
+rampart_context_t *AXIS2_CALL
+build_rampart_context_from_file(
+ const axis2_env_t *env,
+ axis2_char_t *file_name)
+{
rp_secpolicy_t *secpolicy = NULL;
+ rampart_context_t *rampart_context = NULL;
rampart_callback_t* password_callback_module = NULL;
rampart_authn_provider_t *authn_provider = NULL;
axis2_char_t *pwcb_module_name = NULL;
axis2_char_t *authn_provider_name = NULL;
-
- file_name = rampart_get_policy_location(env,msg_ctx,x_flow_policy);
+ axis2_status_t status = AXIS2_SUCCESS;
+
if(!file_name)
{
AXIS2_LOG_INFO(env->log,
"[rampart][rampart_Engine] No Security in the flow. So nothing to do");
return NULL;
}
-
secpolicy = rp_policy_create_from_file(env,file_name);
if(!secpolicy)
@@ -59,23 +156,35 @@
if(!rampart_context)
{
- AXIS2_LOG_INFO(env->log, "[rampart][rampart_Engine] Cannot get Rampart Context " );
+ AXIS2_LOG_INFO(env->log, "[rampart][rampart_Engine]System is out of memory. Cannot get Rampart Context ");
/*No policy so we cant proceed.*/
return NULL;
}
-
+
rampart_context_set_secpolicy(rampart_context,env,secpolicy);
+ status = rampart_context_set_user_from_file(rampart_context,env);
+ if(status!=AXIS2_SUCCESS)
+ return NULL;
+
+ status = rampart_context_set_ttl_from_file(rampart_context,env);
+ if(status!=AXIS2_SUCCESS)
+ return NULL;
+
+ status = rampart_context_set_password_type_from_file(rampart_context,env);
+ if(status!=AXIS2_SUCCESS)
+ return NULL;
+
pwcb_module_name = rampart_context_get_password_callback_class(rampart_context,env);
if(pwcb_module_name)
{
password_callback_module = rampart_load_pwcb_module(env,pwcb_module_name);
if(password_callback_module)
- rampart_context_set_password_callback(rampart_context,env,password_callback_module);
+ rampart_context_set_password_callback(rampart_context,env,password_callback_module);
}
authn_provider_name = rampart_context_get_authn_module_name(rampart_context,env);
-
+
if(authn_provider_name)
{
authn_provider = rampart_load_auth_module(env,authn_provider_name);
@@ -83,4 +192,23 @@
rampart_context_set_authn_provider(rampart_context,env,authn_provider);
}
return rampart_context;
+
+}
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_engine_shutdown(const axis2_env_t *env,
+ rampart_context_t *rampart_context)
+{
+
+/* rp_secpolicy_t *secpolicy = NULL;*/
+ axis2_status_t status = AXIS2_FAILURE;
+
+/* secpolicy = rampart_context_get_secpolicy(rampart_context,env);
+ status = rp_secpolicy_free(secpolicy,env);
+ secpolicy = NULL;
+*/
+ status = rampart_context_free(rampart_context,env);
+ rampart_context = NULL;
+ return status;
}
Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c Mon Feb 26 02:36:47 2007
@@ -322,14 +322,14 @@
}
-AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-rampart_get_policy_location(const axis2_env_t *env,
+AXIS2_EXTERN void *AXIS2_CALL
+rampart_get_rampart_configuration(const axis2_env_t *env,
axis2_msg_ctx_t *msg_ctx,
axis2_char_t *param_name)
{
axis2_param_t *param_x_flow_security = NULL;
- axis2_char_t *value = NULL;
+ void *value = NULL;
param_x_flow_security = rampart_get_security_param(env, msg_ctx,
param_name);
@@ -337,7 +337,7 @@
if (!param_x_flow_security)
{
AXIS2_LOG_INFO(env->log,
- "[rampart][rampart_handler_utils] some error in the configurations");
+ "[rampart][rampart_handler_utils] %s parameter is not set.",param_x_flow_security);
return NULL;
}
value = AXIS2_PARAM_GET_VALUE(param_x_flow_security, env);
Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_builder.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_builder.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_builder.c Mon Feb 26 02:36:47 2007
@@ -103,7 +103,8 @@
AXIS2_LOG_INFO(env->log, "[rampart][shb] building Timestamp Token");
AXIS2_LOG_INFO(env->log, "[rampart][shb] Using default timeToLive value %d",
RAMPART_TIMESTAMP_TOKEN_DEFAULT_TIME_TO_LIVE);
- ttl = RAMPART_TIMESTAMP_TOKEN_DEFAULT_TIME_TO_LIVE;
+ /*ttl = RAMPART_TIMESTAMP_TOKEN_DEFAULT_TIME_TO_LIVE;*/
+ ttl = rampart_context_get_ttl(rampart_context,env);
timestamp_token = rampart_timestamp_token_create(env);
status = RAMPART_TIMESTAMP_TOKEN_BUILD(timestamp_token, env,
@@ -161,7 +162,6 @@
status = rampart_enc_encrypt_message(env, msg_ctx,rampart_context,soap_envelope,sec_node);
if(!status)
return AXIS2_FAILURE;
-
}
return AXIS2_SUCCESS;
Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_processor.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_processor.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_processor.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_processor.c Mon Feb 26 02:36:47 2007
@@ -42,6 +42,7 @@
#include <oxs_token_reference_list.h>
#include <axis2_utils.h>
#include <axis2_array_list.h>
+#include <axis2_key_type.h>
/*Private functions*/
static axis2_bool_t
@@ -223,7 +224,7 @@
axiom_node_t *enc_mtd_node = NULL;
axis2_array_list_t *reference_list = NULL;
axis2_char_t *enc_asym_algo = NULL;
- axis2_char_t *dec_key_file = NULL;
+ axis2_char_t *prv_key_file = NULL;
axis2_char_t *password = NULL;
axis2_char_t *enc_user = NULL;
rampart_callback_t *password_callback = NULL;
@@ -232,9 +233,10 @@
oxs_key_t *decrypted_sym_key = NULL;
axis2_char_t *enc_asym_algo_in_pol = NULL;
axis2_char_t *enc_sym_algo_in_pol = NULL;
- pfunc password_function = NULL;
+ password_callback_fn password_function = NULL;
void *param = NULL;
int i = 0;
+ void *key_buf = NULL;
/*Get EncryptedData references */
ref_list_node = oxs_axiom_get_first_child_node_by_name(env, encrypted_key_node, OXS_NODE_REFERENCE_LIST, NULL, NULL);
@@ -263,48 +265,65 @@
return AXIS2_FAILURE;
}
- asym_ctx = oxs_asym_ctx_create(env);
- dec_key_file = rampart_context_get_decryption_prop_file(rampart_context,env);
- if(!dec_key_file)
- {
- AXIS2_LOG_INFO(env->log, "Decryption Profile is not specified.");
- return AXIS2_FAILURE;
- }
/*Get the password to retrieve the key from key store*/
/* password = rampart_callback_encuser_password(env, actions, msg_ctx);*/
- enc_user = rampart_context_get_encryption_user(rampart_context,env);
+ password = rampart_context_get_prv_key_password(rampart_context,env);
- if(!enc_user)
- enc_user = rampart_context_get_user(rampart_context,env);
+ if(!password)
+ {
+ enc_user = rampart_context_get_encryption_user(rampart_context,env);
- if(!enc_user)
- return AXIS2_FAILURE;
+ if(!enc_user)
+ enc_user = rampart_context_get_user(rampart_context,env);
- password_function = rampart_context_get_password_function(rampart_context,env);
- if(password_function)
- password = (*password_function)(env,enc_user,param);
+ if(!enc_user)
+ return AXIS2_FAILURE;
- else
+ password_function = rampart_context_get_pwcb_function(rampart_context,env);
+ if(password_function)
+ password = (*password_function)(env,enc_user,param);
+
+ else
+ {
+ password_callback = rampart_context_get_password_callback(rampart_context,env);
+ if(!password_callback)
+ {
+ AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] Password call back module is not specified.");
+ return AXIS2_FAILURE;
+ }
+ password = rampart_callback_password(env, password_callback, enc_user);
+ }
+ }
+ asym_ctx = oxs_asym_ctx_create(env);
+
+ key_buf = rampart_context_get_prv_key(rampart_context,env);
+ if(key_buf)
{
- password_callback = rampart_context_get_password_callback(rampart_context,env);
- if(!password_callback)
+ axis2_key_type_t type = 0;
+ type = rampart_context_get_prv_key_type(rampart_context,env);
+ if(type == AXIS2_KEY_TYPE_PEM)
{
- AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] Password call back module is not specified.");
+ oxs_asym_ctx_set_pem_buf(asym_ctx, env, (axis2_char_t *)key_buf);
+ oxs_asym_ctx_set_format(asym_ctx, env,OXS_ASYM_CTX_FORMAT_PEM);
+ }
+ }
+ else
+ {
+ oxs_asym_ctx_set_algorithm(asym_ctx, env, enc_asym_algo);
+ prv_key_file = rampart_context_get_private_key_file(rampart_context,env);
+ if(!prv_key_file)
+ {
+ AXIS2_LOG_INFO(env->log, "Private Key is not specified.");
return AXIS2_FAILURE;
}
- password = rampart_callback_password(env, password_callback, enc_user);
- }
-
- oxs_asym_ctx_set_algorithm(asym_ctx, env, enc_asym_algo);
- oxs_asym_ctx_set_file_name(asym_ctx, env, dec_key_file);
-
-/* oxs_asym_ctx_set_pem_buf(asym_ctx, env, RAMPART_ACTIONS_GET_KEY_BUF(actions, env));*/
+ oxs_asym_ctx_set_file_name(asym_ctx, env, prv_key_file);
+ oxs_asym_ctx_set_format(asym_ctx, env, oxs_util_get_format_by_file_extension(env, prv_key_file));
+ }
oxs_asym_ctx_set_operation(asym_ctx, env, OXS_ASYM_CTX_OPERATION_PRV_DECRYPT);
oxs_asym_ctx_set_password(asym_ctx, env, password);
/*oxs_asym_ctx_set_format(asym_ctx, env, OXS_ASYM_CTX_FORMAT_PKCS12);*/
- oxs_asym_ctx_set_format(asym_ctx, env, oxs_util_get_format_by_file_extension(env, dec_key_file));
/*Create an empty key*/
decrypted_sym_key = oxs_key_create(env);
@@ -586,7 +605,6 @@
AXIS2_LOG_INFO(env->log, "[rampart][shp] Error in the security header");
return AXIS2_FAILURE;
}
-
AXIS2_LOG_INFO(env->log, "[rampart][shp] Process EncryptedKey");
status = rampart_shp_process_encrypted_key(env,msg_ctx, rampart_context, soap_envelope, sec_node, cur_node);
if(status!=AXIS2_SUCCESS)
Modified: webservices/axis2/trunk/c/rampart/src/util/username_token.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/username_token.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/username_token.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/username_token.c Mon Feb 26 02:36:47 2007
@@ -174,8 +174,9 @@
rampart_username_token_impl_t *username_token_impl = NULL;
axis2_char_t *username = NULL;
rampart_callback_t *password_callback = NULL;
- axis2_bool_t isdigest = AXIS2_FALSE;
- pfunc password_function = NULL;
+/* axis2_bool_t isdigest = AXIS2_FALSE;*/
+ axis2_char_t *password_type = NULL;
+ password_callback_fn password_function = NULL;
void *param = NULL;
@@ -190,22 +191,27 @@
AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] User is not specified.");
return AXIS2_FAILURE;
}
- password_function = rampart_context_get_password_function(rampart_context,env);
- if(password_function)
- password = (*password_function)(env,username,param);
- else
+ password = rampart_context_get_password(rampart_context,env);
+
+ if(!password)
{
- password_callback = rampart_context_get_password_callback(rampart_context,env);
- if(!password_callback)
+ password_function = rampart_context_get_pwcb_function(rampart_context,env);
+ if(password_function)
+ password = (*password_function)(env,username,param);
+
+ else
{
- AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] password callback module is not loaded. ERROR");
- return AXIS2_FAILURE;
- }
+ password_callback = rampart_context_get_password_callback(rampart_context,env);
+ if(!password_callback)
+ {
+ AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] password callback module is not loaded. ERROR");
+ return AXIS2_FAILURE;
+ }
- password = rampart_callback_password(env, password_callback,username);
+ password = rampart_callback_password(env, password_callback,username);
+ }
}
-
if (!password)
{
AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] Cannot find the password for user %s. ERROR", username);
@@ -237,12 +243,12 @@
AXIOM_ELEMENT_SET_NAMESPACE(un_ele, env, sec_ns_obj, un_node);
-
}
- /*From policy we can get this as a bool */
-/* if (0 == AXIS2_STRCMP(password_type, RAMPART_PASSWORD_DIGEST))*/
- isdigest = rampart_context_get_password_type(rampart_context,env);
- if(isdigest)
+
+ password_type = rampart_context_get_password_type(rampart_context,env);
+ if(!password_type)
+ password_type = RAMPART_PASSWORD_TEXT;
+ if (0 == AXIS2_STRCMP(password_type, RAMPART_PASSWORD_DIGEST))
{
axis2_char_t *nonce_val = NULL;
axis2_char_t *created_val = NULL;
@@ -356,10 +362,11 @@
rampart_username_token_impl_t *username_token_impl = NULL;
rampart_authn_provider_status_t auth_status= RAMPART_AUTHN_PROVIDER_GENERAL_ERROR ;
axiom_element_t *ut_ele = NULL;
- pfunc password_function = NULL;
+ password_callback_fn password_function = NULL;
void *param = NULL;
auth_password_func authenticate_with_password = NULL;
auth_digest_func authenticate_with_digest = NULL;
+ axis2_char_t *password_type_pol = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
username_token_impl = AXIS2_INTF_TO_IMPL(username_token);
@@ -422,16 +429,19 @@
return AXIS2_FAILURE;
}
/*Then we must check the password type with policy*/
- else if(rampart_context_get_password_type(rampart_context,env))
+ password_type_pol = rampart_context_get_password_type(rampart_context,env);
+ if(!password_type_pol)
+ password_type_pol = RP_PLAINTEXT;
+
+ if(AXIS2_STRCMP(password_type_pol,RP_DIGEST)==0)
{
if(0 != AXIS2_STRCMP(password_type, RAMPART_PASSWORD_DIGEST_URI))
{
AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] Password Type is Wrong");
return AXIS2_FAILURE;
}
-
}
- else if(!rampart_context_get_password_type(rampart_context,env))
+ else if(AXIS2_STRCMP(password_type_pol,RP_PLAINTEXT)==0)
{
if(0 == AXIS2_STRCMP(password_type, RAMPART_PASSWORD_DIGEST_URI))
{
@@ -545,23 +555,27 @@
}else{
/*Auth module is NULL. Use Callback password*/
+ /*First we must check the password in rampart_context.*/
+ password_from_svr = rampart_context_get_password(rampart_context,env);
- /*First we must check whether the password get function pointer is set.(eg:from php)*/
- password_function = rampart_context_get_password_function(rampart_context,env);
- if(password_function)
- password_from_svr = (*password_function)(env,username,param);
+ /*If not then check the call back function*/
+ if(!password_from_svr)
+ {
+ password_function = rampart_context_get_pwcb_function(rampart_context,env);
+ if(password_function)
+ password_from_svr = (*password_function)(env,username,param);
- else
- {
- password_callback = rampart_context_get_password_callback(rampart_context,env);
- if(!password_callback){
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][rampart_usernametoken] Password callback module is not specified");
- return AXIS2_FAILURE;
- }
-
- AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] Password authentication using CALLBACK MODULE ");
- /*password_from_svr = rampart_callback_password(env, pw_callback_module, username, ctx);*/
- password_from_svr = rampart_callback_password(env, password_callback, username);
+ else
+ {
+ password_callback = rampart_context_get_password_callback(rampart_context,env);
+ if(!password_callback){
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][rampart_usernametoken] Password callback module is not specified");
+ return AXIS2_FAILURE;
+ }
+ AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] Password authentication using CALLBACK MODULE ");
+ /*password_from_svr = rampart_callback_password(env, pw_callback_module, username, ctx);*/
+ password_from_svr = rampart_callback_password(env, password_callback, username);
+ }
}
if (!password_from_svr)
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org