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 sh...@apache.org on 2008/08/14 10:03:34 UTC
svn commit: r685799 [1/2] - in /webservices/axis2/trunk/c:
ides/vc/axis2c/neethi/ neethi/include/ neethi/src/
neethi/src/secpolicy/builder/ neethi/src/secpolicy/model/
Author: shankar
Date: Thu Aug 14 01:03:32 2008
New Revision: 685799
URL: http://svn.apache.org/viewvc?rev=685799&view=rev
Log:
WS-Security policy 1.2 support
Modified:
webservices/axis2/trunk/c/ides/vc/axis2c/neethi/neethi.vcproj
webservices/axis2/trunk/c/neethi/include/rp_builders.h
webservices/axis2/trunk/c/neethi/include/rp_defines.h
webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts.h
webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts_builder.h
webservices/axis2/trunk/c/neethi/include/rp_username_token.h
webservices/axis2/trunk/c/neethi/include/rp_username_token_builder.h
webservices/axis2/trunk/c/neethi/src/assertion.c
webservices/axis2/trunk/c/neethi/src/assertion_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/issued_token_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/rampart_config_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/saml_token_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/security_context_token_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signed_encrypted_parts_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/username_token_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/x509_token_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/model/signed_encrypted_parts.c
webservices/axis2/trunk/c/neethi/src/secpolicy/model/ut.c
Modified: webservices/axis2/trunk/c/ides/vc/axis2c/neethi/neethi.vcproj
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/ides/vc/axis2c/neethi/neethi.vcproj?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/ides/vc/axis2c/neethi/neethi.vcproj (original)
+++ webservices/axis2/trunk/c/ides/vc/axis2c/neethi/neethi.vcproj Thu Aug 14 01:03:32 2008
@@ -182,11 +182,11 @@
<References>
<ProjectReference
ReferencedProjectIdentifier="{7C816A64-FA96-4C6C-8DB0-5256441F54BC}"
- RelativePathToProject=".\axiom\axiom.vcproj"
+ RelativePathToProject="..\Axis2C\ides\vc\axis2c\axiom\axiom.vcproj"
/>
<ProjectReference
ReferencedProjectIdentifier="{3887B3E3-1A45-40E5-BC95-9C51000C86DB}"
- RelativePathToProject=".\axutil\axutil.vcproj"
+ RelativePathToProject="..\Axis2C\ides\vc\axis2c\axutil\axutil.vcproj"
/>
</References>
<Files>
@@ -278,10 +278,6 @@
>
</File>
<File
- RelativePath="..\..\..\..\neethi\src\secpolicy\builder\qname_matcher.c"
- >
- </File>
- <File
RelativePath="..\..\..\..\neethi\src\secpolicy\builder\rampart_config_builder.c"
>
</File>
@@ -430,6 +426,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\neethi\src\secpolicy\model\token.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\neethi\src\secpolicy\model\transport_binding.c"
>
</File>
@@ -598,10 +598,6 @@
>
</File>
<File
- RelativePath="..\..\..\..\neethi\include\rp_qname_matcher.h"
- >
- </File>
- <File
RelativePath="..\..\..\..\neethi\include\rp_rampart_config.h"
>
</File>
@@ -678,6 +674,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\neethi\include\rp_token.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\neethi\include\rp_token_identifier.h"
>
</File>
Modified: webservices/axis2/trunk/c/neethi/include/rp_builders.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_builders.h?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_builders.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_builders.h Thu Aug 14 01:03:32 2008
@@ -30,7 +30,6 @@
#include <rp_wss10_builder.h>
#include <rp_wss11_builder.h>
#include <rp_trust10_builder.h>
-#include <rp_qname_matcher.h>
#include <rp_https_token_builder.h>
#include <rp_x509_token_builder.h>
#include <rp_issued_token_builder.h>
Modified: webservices/axis2/trunk/c/neethi/include/rp_defines.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_defines.h?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_defines.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_defines.h Thu Aug 14 01:03:32 2008
@@ -1,10 +1,10 @@
-
/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -52,6 +52,7 @@
#define RP_NAME "Name"
#define RP_NAMESPACE "Namespace"
#define RP_ELEMENT "Element"
+#define RP_ATTACHMENTS "Attachments"
#define RP_XPATH "XPath"
#define RP_XPATH_VERSION "XPathVersion"
@@ -155,6 +156,11 @@
#define RP_INCLUDE_NEVER "http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never"
#define RP_INCLUDE_ONCE "http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Once"
#define RP_INCLUDE_ALWAYS_TO_RECIPIENT "http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"
+#define RP_INCLUDE_NEVER_SP12 "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never"
+#define RP_INCLUDE_ONCE_SP12 "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Once"
+#define RP_INCLUDE_ALWAYS_TO_RECIPIENT_SP12 "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient"
+#define RP_INCLUDE_ALWAYS_TO_INITIATOR_SP12 "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToInitiator"
+#define RP_INCLUDE_ALWAYS_SP12 "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Always"
#define RP_REQUEST_SEC_TOKEN_TEMPLATE "RequestSecurityTokenTemplate"
@@ -207,7 +213,8 @@
#define RP_RD_MODULE "ReplayDetectionModule"
#define RP_SCT_MODULE "SecurityContextTokenProvider"
-#define RP_SP_NS "http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"
+#define RP_SP_NS_11 "http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"
+#define RP_SP_NS_12 "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"
#define RP_SECURITY_NS "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
#define RP_POLICY_NS "http://schemas.xmlsoap.org/ws/2004/09/policy"
#define RP_RAMPART_NS "http://ws.apache.org/rampart/c/policy"
Modified: webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts.h?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts.h Thu Aug 14 01:03:32 2008
@@ -1,10 +1,11 @@
/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -64,6 +65,17 @@
const axutil_env_t * env,
axis2_bool_t signedparts);
+ AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+ rp_signed_encrypted_parts_get_attachments(
+ rp_signed_encrypted_parts_t * signed_encrypted_parts,
+ const axutil_env_t * env);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ rp_signed_encrypted_parts_set_attachments(
+ rp_signed_encrypted_parts_t * signed_encrypted_parts,
+ const axutil_env_t * env,
+ axis2_bool_t attachments);
+
AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
rp_signed_encrypted_parts_get_headers(
rp_signed_encrypted_parts_t * signed_encrypted_parts,
Modified: webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts_builder.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts_builder.h?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts_builder.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_signed_encrypted_parts_builder.h Thu Aug 14 01:03:32 2008
@@ -1,10 +1,10 @@
-
/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -34,11 +34,20 @@
{
#endif
+ /**
+ * Builts EncryptedParts or SignedParts assertion
+ * @param env Pointer to environment struct
+ * @param node Assertion node
+ * @param element Assertion element
+ * @param is_signed boolean showing whether signing or encryption
+ * @returns neethi assertion created. NULL if failure.
+ */
AXIS2_EXTERN neethi_assertion_t *AXIS2_CALL
rp_signed_encrypted_parts_builder_build(
const axutil_env_t * env,
axiom_node_t * node,
- axiom_element_t * element);
+ axiom_element_t * element,
+ axis2_bool_t is_signed);
#ifdef __cplusplus
}
Modified: webservices/axis2/trunk/c/neethi/include/rp_username_token.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_username_token.h?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_username_token.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_username_token.h Thu Aug 14 01:03:32 2008
@@ -1,10 +1,11 @@
/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -24,12 +25,20 @@
*/
#include <rp_includes.h>
+#include <rp_token.h>
#ifdef __cplusplus
extern "C"
{
#endif
+ typedef enum
+ {
+ PASSWORD_PLAIN = 0,
+ PASSWORD_HASH,
+ PASSWORD_NONE /* no password will be provided in the user name token */
+ } password_type_t;
+
typedef struct rp_username_token_t rp_username_token_t;
AXIS2_EXTERN rp_username_token_t *AXIS2_CALL
@@ -53,37 +62,70 @@
axis2_char_t * inclusion);
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
- rp_username_token_get_derivedkeys(
+ rp_username_token_get_useUTprofile10(
rp_username_token_t * username_token,
const axutil_env_t * env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
- rp_username_token_set_derivedkeys(
+ rp_username_token_set_useUTprofile10(
rp_username_token_t * username_token,
const axutil_env_t * env,
- axis2_bool_t derivedkeys);
+ axis2_bool_t useUTprofile10);
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
- rp_username_token_get_useUTprofile10(
+ rp_username_token_get_useUTprofile11(
rp_username_token_t * username_token,
const axutil_env_t * env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
- rp_username_token_set_useUTprofile10(
+ rp_username_token_set_useUTprofile11(
rp_username_token_t * username_token,
const axutil_env_t * env,
- axis2_bool_t useUTprofile10);
+ axis2_bool_t useUTprofile11);
+
+ AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+ rp_username_token_get_issuer(
+ rp_username_token_t * username_token,
+ const axutil_env_t * env);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ rp_username_token_set_issuer(
+ rp_username_token_t * username_token,
+ const axutil_env_t * env,
+ axis2_char_t * issuer);
+
+ AXIS2_EXTERN derive_key_type_t AXIS2_CALL
+ rp_username_token_get_derivedkey_type(
+ rp_username_token_t * username_token,
+ const axutil_env_t * env);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ rp_username_token_set_derivedkey_type(
+ rp_username_token_t * username_token,
+ const axutil_env_t * env,
+ derive_key_type_t derivedkey);
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
- rp_username_token_get_useUTprofile11(
+ rp_username_token_get_is_issuer_name(
rp_username_token_t * username_token,
const axutil_env_t * env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
- rp_username_token_set_useUTprofile11(
+ rp_username_token_set_is_issuer_name(
rp_username_token_t * username_token,
const axutil_env_t * env,
- axis2_bool_t useUTprofile11);
+ axis2_bool_t is_issuer_name);
+
+ AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+ rp_username_token_get_claim(
+ rp_username_token_t * username_token,
+ const axutil_env_t * env);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ rp_username_token_set_claim(
+ rp_username_token_t * username_token,
+ const axutil_env_t * env,
+ axiom_node_t *claim);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_username_token_increment_ref(
Modified: webservices/axis2/trunk/c/neethi/include/rp_username_token_builder.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_username_token_builder.h?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_username_token_builder.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_username_token_builder.h Thu Aug 14 01:03:32 2008
@@ -1,10 +1,10 @@
-
/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
Modified: webservices/axis2/trunk/c/neethi/src/assertion.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/assertion.c?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/assertion.c (original)
+++ webservices/axis2/trunk/c/neethi/src/assertion.c Thu Aug 14 01:03:32 2008
@@ -89,27 +89,23 @@
neethi_assertion_type_t type)
{
neethi_assertion_t *neethi_assertion = NULL;
+ neethi_assertion = (neethi_assertion_t *) AXIS2_MALLOC(
+ env->allocator, sizeof(neethi_assertion_t));
- AXIS2_ENV_CHECK(env, NULL);
-
- neethi_assertion = (neethi_assertion_t *) AXIS2_MALLOC(env->allocator,
- sizeof
- (neethi_assertion_t));
-
- if (neethi_assertion == NULL)
+ if (!neethi_assertion)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Neethi assertion creation failed. Out of memory");
return NULL;
}
- neethi_assertion->policy_components = NULL;
+ neethi_assertion->policy_components = NULL;
neethi_assertion->policy_components = axutil_array_list_create(env, 0);
if (!(neethi_assertion->policy_components))
{
-
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "Neethi assertion policy components creation failed.");
return NULL;
}
@@ -172,46 +168,37 @@
}
else if (type == ASSERTION_TYPE_SUPPORTING_TOKENS)
{
- rp_supporting_tokens_increment_ref((rp_supporting_tokens_t *) value,
- env);
+ rp_supporting_tokens_increment_ref((rp_supporting_tokens_t *) value, env);
}
else if (type == ASSERTION_TYPE_USERNAME_TOKEN)
{
rp_username_token_increment_ref((rp_username_token_t *) value, env);
}
-
else if (type == ASSERTION_TYPE_ASSYMMETRIC_BINDING)
{
- rp_asymmetric_binding_increment_ref((rp_asymmetric_binding_t *) value,
- env);
+ rp_asymmetric_binding_increment_ref((rp_asymmetric_binding_t *) value, env);
}
-
else if (type == ASSERTION_TYPE_SYMMETRIC_BINDING)
{
- rp_symmetric_binding_increment_ref((rp_symmetric_binding_t *) value,
- env);
+ rp_symmetric_binding_increment_ref((rp_symmetric_binding_t *) value, env);
}
-
else if (type == ASSERTION_TYPE_TRANSPORT_BINDING)
{
- rp_transport_binding_increment_ref((rp_transport_binding_t *) value,
- env);
+ rp_transport_binding_increment_ref((rp_transport_binding_t *) value, env);
}
-
else if (type == ASSERTION_TYPE_SIGNED_ENCRYPTED_PARTS)
{
- rp_signed_encrypted_parts_increment_ref((rp_signed_encrypted_parts_t *)
- value, env);
+ rp_signed_encrypted_parts_increment_ref((rp_signed_encrypted_parts_t *)value, env);
}
else if (type == ASSERTION_TYPE_RAMPART_CONFIG)
{
rp_rampart_config_increment_ref((rp_rampart_config_t *) value, env);
}
- if (type == ASSERTION_TYPE_ISSUED_TOKEN)
+ else if (type == ASSERTION_TYPE_ISSUED_TOKEN)
{
rp_issued_token_increment_ref((rp_issued_token_t *) value, env);
}
- if (type == ASSERTION_TYPE_SAML_TOKEN)
+ else if (type == ASSERTION_TYPE_SAML_TOKEN)
{
rp_saml_token_increment_ref((rp_saml_token_t *) value, env);
}
@@ -224,7 +211,6 @@
neethi_assertion->free_func = free_func;
return neethi_assertion;
-
}
AXIS2_EXTERN void AXIS2_CALL
@@ -296,10 +282,6 @@
{
rp_x509_token_increment_ref((rp_x509_token_t *) value, env);
}
- else if (type == ASSERTION_TYPE_SECURITY_CONTEXT_TOKEN)
- {
- rp_security_context_token_increment_ref((rp_security_context_token_t *)value, env);
- }
neethi_assertion->value = (void *) value;
return AXIS2_SUCCESS;
Modified: webservices/axis2/trunk/c/neethi/src/assertion_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/assertion_builder.c?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/assertion_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/assertion_builder.c Thu Aug 14 01:03:32 2008
@@ -24,687 +24,367 @@
axiom_node_t *node,
axiom_element_t *element)
{
-
axis2_char_t *localname = NULL;
+ axis2_char_t *ns = NULL;
+ axutil_qname_t *node_qname = NULL;
localname = axiom_element_get_localname(element, env);
- if (!localname)
+ if(!localname)
{
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[neethi] Cannot get localname from element.");
return NULL;
}
- if (axutil_strcmp(localname, RP_TRANSPORT_BINDING) == 0)
+ node_qname = axiom_element_get_qname(element, env, node);
+ if(!node_qname)
{
- if (rp_match_secpolicy_qname(env, RP_TRANSPORT_BINDING, node, element))
- {
- return rp_transport_binding_builder_build(env, node, element);
- }
- else
- return NULL;
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot get qname from element %s.", localname);
+ return NULL;
}
- else if (axutil_strcmp(localname, RP_ASYMMETRIC_BINDING) == 0)
+ ns = axutil_qname_get_uri(node_qname, env);
+ if(!ns)
{
- if (rp_match_secpolicy_qname(env, RP_ASYMMETRIC_BINDING, node, element))
- {
- return rp_asymmetric_binding_builder_build(env, node, element);
- }
- else
- return NULL;
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot get namespace from element %s.", localname);
+ return NULL;
}
- else if (axutil_strcmp(localname, RP_SYMMETRIC_BINDING) == 0)
+ if(!(axutil_strcmp(ns, RP_SP_NS_11) && axutil_strcmp(ns, RP_SP_NS_12)))
{
- if (rp_match_secpolicy_qname(env, RP_SYMMETRIC_BINDING, node, element))
+ /* if namespace is WS-SecurityPolicy Namespace */
+ if(!axutil_strcmp(localname, RP_TRANSPORT_BINDING))
+ {
+ return rp_transport_binding_builder_build(env, node, element);
+ }
+ else if(!axutil_strcmp(localname, RP_ASYMMETRIC_BINDING))
+ {
+ return rp_asymmetric_binding_builder_build(env, node, element);
+ }
+ else if(!axutil_strcmp(localname, RP_SYMMETRIC_BINDING))
{
return rp_symmetric_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))
+ else if(!axutil_strcmp(localname, RP_TRANSPORT_TOKEN))
{
return rp_transport_token_builder_build(env, node, element);
}
- else
- return NULL;
- }
-
- else if (axutil_strcmp(localname, RP_RECIPIENT_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_RECIPIENT_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_RECIPIENT_TOKEN))
{
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))
+ else if(!axutil_strcmp(localname, RP_INITIATOR_TOKEN))
{
return rp_initiator_token_builder_build(env, node, element);
}
- else
- return NULL;
- }
-
- else if (axutil_strcmp(localname, RP_PROTECTION_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_PROTECTION_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_PROTECTION_TOKEN))
{
return rp_protection_token_builder_build(env, node, element);
}
- else
- return NULL;
- }
-
- else if (axutil_strcmp(localname, RP_ENCRYPTION_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_ENCRYPTION_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_ENCRYPTION_TOKEN))
{
return rp_encryption_token_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_SIGNATURE_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_SIGNATURE_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_SIGNATURE_TOKEN))
{
return rp_signature_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))
+ else if(!axutil_strcmp(localname, RP_X509_TOKEN))
{
return rp_x509_token_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_SECURITY_CONTEXT_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_SECURITY_CONTEXT_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_SECURITY_CONTEXT_TOKEN))
{
return rp_security_context_token_builder_build(env, node, element, AXIS2_FALSE);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_SECURE_CONVERSATION_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_SECURE_CONVERSATION_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_SECURE_CONVERSATION_TOKEN))
{
return rp_security_context_token_builder_build(env, node, element, AXIS2_TRUE);
}
- 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))
+ else if(!axutil_strcmp(localname, RP_ENCRYPT_BEFORE_SIGNING))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_ENCRYPT_BEFORE_SIGNING);
+ 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))
+ else if(!axutil_strcmp(localname, RP_SIGN_BEFORE_ENCRYPTING))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_SIGN_BEFORE_ENCRYPTING);
+ 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))
+ else if(!axutil_strcmp(localname, RP_ENCRYPT_SIGNATURE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_ENCRYPT_SIGNATURE);
+ 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))
+ else if(!axutil_strcmp(localname, RP_PROTECT_TOKENS))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_PROTECT_TOKENS);
+ 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))
+ else if(!axutil_strcmp(localname, RP_ONLY_SIGN_ENTIRE_HEADERS_AND_BODY))
{
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);
+ 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))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_KEY_IDENTIFIRE_REFERENCE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_KEY_IDENTIFIRE_REFERENCE);
+ 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))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_ISSUER_SERIAL_REFERENCE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_ISSUER_SERIAL_REFERENCE);
+ 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))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_EMBEDDED_TOKEN_REFERENCE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_EMBEDDED_TOKEN_REFERENCE);
+ 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))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_THUMBPRINT_REFERENCE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_THUMBPRINT_REFERENCE);
+ 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))
+ else if(!axutil_strcmp(localname, RP_WSS_X509_V1_TOKEN_10))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_WSS_X509_V1_TOKEN_10);
+ 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))
+ else if(!axutil_strcmp(localname, RP_WSS_X509_V3_TOKEN_10))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_WSS_X509_V3_TOKEN_10);
+ 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))
+ else if(!axutil_strcmp(localname, RP_ALGORITHM_SUITE))
{
return rp_algorithmsuite_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_LAYOUT) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_LAYOUT, node, element))
+ else if(!axutil_strcmp(localname, RP_LAYOUT))
{
return rp_layout_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_USERNAME_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_USERNAME_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_USERNAME_TOKEN))
{
return rp_username_token_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_SIGNED_SUPPORTING_TOKENS) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_SIGNED_SUPPORTING_TOKENS, node, element))
+ else if(!axutil_strcmp(localname, RP_SIGNED_SUPPORTING_TOKENS))
{
return rp_supporting_tokens_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_SUPPORTING_TOKENS) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_SUPPORTING_TOKENS, node, element))
+ else if(!axutil_strcmp(localname, RP_SUPPORTING_TOKENS))
{
return rp_supporting_tokens_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_ENDORSING_SUPPORTING_TOKENS) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_ENDORSING_SUPPORTING_TOKENS, node, element))
+ else if(!axutil_strcmp(localname, RP_ENDORSING_SUPPORTING_TOKENS))
{
return rp_supporting_tokens_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_SIGNED_ENDORSING_SUPPORTING_TOKENS) ==
- 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_SIGNED_ENDORSING_SUPPORTING_TOKENS, node, element))
+ else if(!axutil_strcmp(localname, RP_SIGNED_ENDORSING_SUPPORTING_TOKENS))
{
return rp_supporting_tokens_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_WSS10) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_WSS10, node, element))
+ else if(!axutil_strcmp(localname, RP_WSS10))
{
return rp_wss10_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_WSS11) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_WSS11, node, element))
+ else if(!axutil_strcmp(localname, RP_WSS11))
{
return rp_wss11_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_TRUST10) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_TRUST10, node, element))
+ else if(!axutil_strcmp(localname, RP_TRUST10))
{
return rp_trust10_builder_build(env, node, element);
}
- else
- return NULL;
- }
-
- else if (axutil_strcmp(localname, RP_INCLUDE_TIMESTAMP) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_INCLUDE_TIMESTAMP, node, element))
+ else if(!axutil_strcmp(localname, RP_INCLUDE_TIMESTAMP))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_INCLUDE_TIMESTAMP);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_INCLUDE_TIMESTAMP);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_HTTPS_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_HTTPS_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_HTTPS_TOKEN))
{
return rp_https_token_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_WSS_USERNAME_TOKEN_10) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_WSS_USERNAME_TOKEN_10, node, element))
+ else if(!axutil_strcmp(localname, RP_WSS_USERNAME_TOKEN_10))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_WSS_USERNAME_TOKEN_10);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_WSS_USERNAME_TOKEN_10);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_WSS_USERNAME_TOKEN_11) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_WSS_USERNAME_TOKEN_11, node, element))
+ else if(!axutil_strcmp(localname, RP_WSS_USERNAME_TOKEN_11))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_WSS_USERNAME_TOKEN_11);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_WSS_USERNAME_TOKEN_11);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_MUST_SUPPORT_REF_KEY_IDENTIFIER) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_MUST_SUPPORT_REF_KEY_IDENTIFIER, node, element))
+ else if(!axutil_strcmp(localname, RP_MUST_SUPPORT_REF_KEY_IDENTIFIER))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_MUST_SUPPORT_REF_KEY_IDENTIFIER);
+ neethi_assertion_set_value(assertion, env, NULL,
+ ASSERTION_TYPE_MUST_SUPPORT_REF_KEY_IDENTIFIER);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_MUST_SUPPORT_REF_ISSUER_SERIAL) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_MUST_SUPPORT_REF_ISSUER_SERIAL, node, element))
+ else if(!axutil_strcmp(localname, RP_MUST_SUPPORT_REF_ISSUER_SERIAL))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_MUST_SUPPORT_REF_ISSUER_SERIAL);
+ neethi_assertion_set_value(assertion, env, NULL,
+ ASSERTION_TYPE_MUST_SUPPORT_REF_ISSUER_SERIAL);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_MUST_SUPPORT_REF_EXTERNAL_URI) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_MUST_SUPPORT_REF_EXTERNAL_URI, node, element))
+ else if(!axutil_strcmp(localname, RP_MUST_SUPPORT_REF_EXTERNAL_URI))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_MUST_SUPPORT_REF_EXTERNAL_URI);
+ ASSERTION_TYPE_MUST_SUPPORT_REF_EXTERNAL_URI);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_MUST_SUPPORT_REF_EMBEDDED_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_MUST_SUPPORT_REF_EMBEDDED_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_MUST_SUPPORT_REF_EMBEDDED_TOKEN))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_MUST_SUPPORT_REF_EMBEDDED_TOKEN);
+ 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))
+ else if(!axutil_strcmp(localname, RP_SIGNED_PARTS))
{
- return rp_signed_encrypted_parts_builder_build(env, node, element);
+ return rp_signed_encrypted_parts_builder_build(env, node, element, AXIS2_TRUE);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_ENCRYPTED_PARTS) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_ENCRYPTED_PARTS, node, element))
+ else if(!axutil_strcmp(localname, RP_ENCRYPTED_PARTS))
{
- return rp_signed_encrypted_parts_builder_build(env, node, element);
+ return rp_signed_encrypted_parts_builder_build(env, node, element, AXIS2_FALSE);
}
- 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;
- }
- else if(axutil_strcmp(localname, RP_BOOTSTRAP_POLICY) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_BOOTSTRAP_POLICY, node, element))
+ else if(!axutil_strcmp(localname, RP_BOOTSTRAP_POLICY))
{
return rp_bootstrap_policy_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_MUST_SUPPORT_REF_THUMBPRINT) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_MUST_SUPPORT_REF_THUMBPRINT, node, element))
+ else if(!axutil_strcmp(localname, RP_MUST_SUPPORT_REF_THUMBPRINT))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_MUST_SUPPORT_REF_THUMBPRINT);
+ neethi_assertion_set_value(assertion, env, NULL,
+ ASSERTION_TYPE_MUST_SUPPORT_REF_THUMBPRINT);
return assertion;
- }
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_MUST_SUPPORT_REF_ENCRYPTED_KEY) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_MUST_SUPPORT_REF_ENCRYPTED_KEY, node, element))
+ }
+ else if(!axutil_strcmp(localname, RP_MUST_SUPPORT_REF_ENCRYPTED_KEY))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_MUST_SUPPORT_REF_ENCRYPTED_KEY);
+ ASSERTION_TYPE_MUST_SUPPORT_REF_ENCRYPTED_KEY);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_REQUIRE_SIGNATURE_CONFIRMATION) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_REQUIRE_SIGNATURE_CONFIRMATION, node, element))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_SIGNATURE_CONFIRMATION))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_SIGNATURE_CONFIRMATION);
+ ASSERTION_TYPE_REQUIRE_SIGNATURE_CONFIRMATION);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_MUST_SUPPORT_CLIENT_CHALLENGE) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_MUST_SUPPORT_CLIENT_CHALLENGE, node, element))
+ else if(!axutil_strcmp(localname, RP_MUST_SUPPORT_CLIENT_CHALLENGE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_MUST_SUPPORT_CLIENT_CHALLENGE);
+ ASSERTION_TYPE_MUST_SUPPORT_CLIENT_CHALLENGE);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_MUST_SUPPORT_SERVER_CHALLENGE) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_MUST_SUPPORT_SERVER_CHALLENGE, node, element))
+ else if(!axutil_strcmp(localname, RP_MUST_SUPPORT_SERVER_CHALLENGE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_MUST_SUPPORT_SERVER_CHALLENGE);
+ ASSERTION_TYPE_MUST_SUPPORT_SERVER_CHALLENGE);
return assertion;
- }
- else
- return NULL;
- }
+ }
- else if (axutil_strcmp(localname, RP_REQUIRE_CLIENT_ENTROPY) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_REQUIRE_CLIENT_ENTROPY, node, element))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_CLIENT_ENTROPY))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_CLIENT_ENTROPY);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_REQUIRE_CLIENT_ENTROPY);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_REQUIRE_SERVER_ENTROPHY) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_REQUIRE_SERVER_ENTROPHY, node, element))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_SERVER_ENTROPHY))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_SERVER_ENTROPHY);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_REQUIRE_SERVER_ENTROPHY);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_MUST_SUPPORT_ISSUED_TOKENS) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_MUST_SUPPORT_ISSUED_TOKENS, node, element))
+ else if(!axutil_strcmp(localname, RP_MUST_SUPPORT_ISSUED_TOKENS))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_MUST_SUPPORT_ISSUED_TOKENS);
+ neethi_assertion_set_value(assertion, env, NULL,
+ ASSERTION_TYPE_MUST_SUPPORT_ISSUED_TOKENS);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_REQUIRE_DERIVED_KEYS) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_REQUIRE_DERIVED_KEYS, node, element))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_DERIVED_KEYS))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_DERIVED_KEYS);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_REQUIRE_DERIVED_KEYS);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_REQUIRE_EXTERNAL_URI_REFERENCE) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_REQUIRE_EXTERNAL_URI_REFERENCE, node, element))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_EXTERNAL_URI_REFERENCE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_EXTERNAL_URI);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_REQUIRE_EXTERNAL_URI);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_SC10_SECURITY_CONTEXT_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_SC10_SECURITY_CONTEXT_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_SC10_SECURITY_CONTEXT_TOKEN))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_SC10_SECURITY_CONTEXT_TOKEN);
+ neethi_assertion_set_value(assertion, env, NULL,
+ ASSERTION_TYPE_SC10_SECURITY_CONTEXT_TOKEN);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_ISSUER) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_ISSUER, node, element))
+ else if(!axutil_strcmp(localname, RP_ISSUER))
{
neethi_assertion_t *assertion = NULL;
axis2_char_t *issuer = NULL;
@@ -714,134 +394,78 @@
neethi_assertion_set_value(assertion, env, issuer, ASSERTION_TYPE_ISSUER);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_REQUIRE_EXTERNAL_REFERENCE) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_REQUIRE_EXTERNAL_REFERENCE, node, element))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_EXTERNAL_REFERENCE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_EXTERNAL_REFERENCE);
+ neethi_assertion_set_value(assertion, env, NULL,
+ ASSERTION_TYPE_REQUIRE_EXTERNAL_REFERENCE);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_REQUIRE_INTERNAL_REFERENCE) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_REQUIRE_INTERNAL_REFERENCE, node, element))
+ else if(!axutil_strcmp(localname, RP_REQUIRE_INTERNAL_REFERENCE))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_REQUIRE_INTERNAL_REFERENCE);
+ ASSERTION_TYPE_REQUIRE_INTERNAL_REFERENCE);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_ISSUED_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_ISSUED_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_ISSUED_TOKEN))
{
return rp_issued_token_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_SAML_TOKEN) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_SAML_TOKEN, node, element))
+ else if(!axutil_strcmp(localname, RP_SAML_TOKEN))
{
return rp_saml_token_builder_build(env, node, element);
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_WSS_SAML_V10_TOKEN_V10) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_WSS_SAML_V10_TOKEN_V10, node, element))
+ else if(!axutil_strcmp(localname, RP_WSS_SAML_V10_TOKEN_V10))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_WSS_SAML_V10_TOKEN_V10);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_WSS_SAML_V10_TOKEN_V10);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_WSS_SAML_V10_TOKEN_V11) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_WSS_SAML_V10_TOKEN_V11, node, element))
+ else if(!axutil_strcmp(localname, RP_WSS_SAML_V10_TOKEN_V11))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_WSS_SAML_V10_TOKEN_V11);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_WSS_SAML_V10_TOKEN_V11);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_WSS_SAML_V11_TOKEN_V10) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_WSS_SAML_V11_TOKEN_V10, node, element))
+ else if(!axutil_strcmp(localname, RP_WSS_SAML_V11_TOKEN_V10))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_WSS_SAML_V11_TOKEN_V10);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_WSS_SAML_V11_TOKEN_V10);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_WSS_SAML_V11_TOKEN_V11) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_WSS_SAML_V11_TOKEN_V11, node, element))
+ else if(!axutil_strcmp(localname, RP_WSS_SAML_V11_TOKEN_V11))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_WSS_SAML_V11_TOKEN_V11);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_WSS_SAML_V11_TOKEN_V11);
return assertion;
}
- else
- return NULL;
- }
- else if (axutil_strcmp(localname, RP_WSS_SAML_V20_TOKEN_V11) == 0)
- {
- if (rp_match_secpolicy_qname
- (env, RP_WSS_SAML_V20_TOKEN_V11, node, element))
+ else if(!axutil_strcmp(localname, RP_WSS_SAML_V20_TOKEN_V11))
{
neethi_assertion_t *assertion = NULL;
assertion = neethi_assertion_create(env);
- neethi_assertion_set_value(assertion, env, NULL,
- ASSERTION_TYPE_WSS_SAML_V20_TOKEN_V11);
+ neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_WSS_SAML_V20_TOKEN_V11);
return assertion;
}
- else
- return NULL;
}
- else
+ else if(!axutil_strcmp(ns, RP_RAMPART_NS))
{
- AXIS2_ERROR_SET(env->error,
- AXIS2_ERROR_NEETHI_UNKNOWN_ASSERTION,
- AXIS2_FAILURE);
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Unknown Assertion");
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "[neethi] Unknown Assertion %s",
- localname);
- return NULL;
+ /* if namespace is Rampart Namespace */
+ if(!axutil_strcmp(localname, RP_RAMPART_CONFIG))
+ {
+ return rp_rampart_config_builder_build(env, node, element);
+ }
}
+
+ /* This assertion cannot be processed */
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NEETHI_UNKNOWN_ASSERTION, AXIS2_FAILURE);
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Unknown Assertion %s with namespace %s", localname, ns);
+ return NULL;
}
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/issued_token_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/issued_token_builder.c?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/issued_token_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/issued_token_builder.c Thu Aug 14 01:03:32 2008
@@ -41,7 +41,7 @@
neethi_assertion_t *assertion= NULL;
issued_token = rp_issued_token_create(env);
- qname = axutil_qname_create(env, RP_INCLUDE_TOKEN, RP_SP_NS, RP_SP_PREFIX);
+ qname = axutil_qname_create(env, RP_INCLUDE_TOKEN, RP_SP_NS_11, RP_SP_PREFIX);
inclusoin_value = axiom_element_get_attribute_value(element, env, qname);
@@ -53,7 +53,7 @@
rp_issued_token_set_inclusion(issued_token, env, inclusoin_value);
}
- qname = axutil_qname_create(env, RP_ISSUER, RP_SP_NS, RP_SP_PREFIX);
+ qname = axutil_qname_create(env, RP_ISSUER, RP_SP_NS_11, RP_SP_PREFIX);
issuer_ele = axiom_element_get_first_child_with_qname(element, env, qname,
node, &issuer_node);
if (issuer_ele)
@@ -69,7 +69,7 @@
axutil_qname_free(qname, env);
qname = NULL;
- qname = axutil_qname_create(env, RP_REQUEST_SEC_TOKEN_TEMPLATE, RP_SP_NS,
+ qname = axutil_qname_create(env, RP_REQUEST_SEC_TOKEN_TEMPLATE, RP_SP_NS_11,
RP_SP_PREFIX);
req_sec_tok_template_ele = axiom_element_get_first_child_with_qname(
element, env, qname, node, &req_sec_tok_template_node);
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/rampart_config_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/rampart_config_builder.c?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/rampart_config_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/rampart_config_builder.c Thu Aug 14 01:03:32 2008
@@ -16,7 +16,6 @@
*/
#include <rp_rampart_config_builder.h>
-#include <rp_qname_matcher.h>
/*private functions*/
@@ -95,182 +94,114 @@
axiom_element_t *element,
axis2_char_t *local_name)
{
- if (axutil_strcmp(local_name, RP_USER) == 0)
+ axis2_char_t *ns = NULL;
+ axutil_qname_t *node_qname = NULL;
+
+ node_qname = axiom_element_get_qname(element, env, node);
+ if(!node_qname)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot get qname from element %s.", local_name);
+ return AXIS2_FAILURE;
+ }
+
+ ns = axutil_qname_get_uri(node_qname, env);
+ if(!ns)
{
- if (rp_match_rampart_config_qname(env, RP_USER, node, element))
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot get namespace from element %s.", local_name);
+ return AXIS2_FAILURE;
+ }
+
+ if(!axutil_strcmp(ns, RP_RAMPART_NS))
+ {
+ if(!axutil_strcmp(local_name, RP_USER))
{
axis2_char_t *user = NULL;
user = axiom_element_get_text(element, env, node);
-
return rp_rampart_config_set_user(rampart_config, env, user);
}
- else
- return AXIS2_FAILURE;
- }
- else if (axutil_strcmp(local_name, RP_ENCRYPTION_USER) == 0)
- {
- if (rp_match_rampart_config_qname
- (env, RP_ENCRYPTION_USER, node, element))
+ else if(!axutil_strcmp(local_name, RP_ENCRYPTION_USER))
{
axis2_char_t *encryption_user = NULL;
encryption_user = axiom_element_get_text(element, env, node);
- return rp_rampart_config_set_encryption_user(rampart_config, env,
- encryption_user);
+ return rp_rampart_config_set_encryption_user(rampart_config, env,encryption_user);
}
- else
- return AXIS2_FAILURE;
- }
- else if (axutil_strcmp(local_name, RP_PASSWORD_CALLBACK_CLASS) == 0)
- {
- if (rp_match_rampart_config_qname
- (env, RP_PASSWORD_CALLBACK_CLASS, node, element))
+ else if(!axutil_strcmp(local_name, RP_PASSWORD_CALLBACK_CLASS))
{
axis2_char_t *password_callback_class = NULL;
- password_callback_class =
- axiom_element_get_text(element, env, node);
- return rp_rampart_config_set_password_callback_class(rampart_config,
- env,
- password_callback_class);
+ password_callback_class = axiom_element_get_text(element, env, node);
+ return rp_rampart_config_set_password_callback_class(
+ rampart_config, env, password_callback_class);
}
- else
- return AXIS2_FAILURE;
- }
- else if (axutil_strcmp(local_name, RP_AUTHN_MODULE_NAME) == 0)
- {
- if (rp_match_rampart_config_qname
- (env, RP_AUTHN_MODULE_NAME, node, element))
+ else if(!axutil_strcmp(local_name, RP_AUTHN_MODULE_NAME))
{
axis2_char_t *authenticate_module = NULL;
authenticate_module = axiom_element_get_text(element, env, node);
- return rp_rampart_config_set_authenticate_module(rampart_config,
- env,
- authenticate_module);
+ return rp_rampart_config_set_authenticate_module(
+ rampart_config, env, authenticate_module);
}
- else
- return AXIS2_FAILURE;
- }
- else if (axutil_strcmp(local_name, RP_RD_MODULE) == 0)
- {
- if (rp_match_rampart_config_qname
- (env, RP_RD_MODULE, node, element))
+ else if(!axutil_strcmp(local_name, RP_RD_MODULE))
{
axis2_char_t *replay_detector = NULL;
replay_detector = axiom_element_get_text(element, env, node);
- return rp_rampart_config_set_replay_detector(rampart_config,
- env,
- replay_detector);
+ return rp_rampart_config_set_replay_detector(rampart_config, env, replay_detector);
}
- else
- return AXIS2_FAILURE;
- }
- else if (axutil_strcmp(local_name, RP_SCT_MODULE) == 0)
- {
- if (rp_match_rampart_config_qname
- (env, RP_SCT_MODULE, node, element))
+ else if(!axutil_strcmp(local_name, RP_SCT_MODULE))
{
axis2_char_t *sct_module = NULL;
sct_module = axiom_element_get_text(element, env, node);
- return rp_rampart_config_set_sct_provider(rampart_config,
- env,
- sct_module);
+ return rp_rampart_config_set_sct_provider(rampart_config, env, sct_module);
}
- else
- return AXIS2_FAILURE;
- }
- else if (axutil_strcmp(local_name, RP_PASSWORD_TYPE) == 0)
- {
- if (rp_match_rampart_config_qname(env, RP_PASSWORD_TYPE, node, element))
+ else if(!axutil_strcmp(local_name, RP_PASSWORD_TYPE))
{
axis2_char_t *password_type = NULL;
password_type = axiom_element_get_text(element, env, node);
- return rp_rampart_config_set_password_type(rampart_config, env,
- password_type);
+ return rp_rampart_config_set_password_type(rampart_config, env, password_type);
}
- else
- return AXIS2_FAILURE;
- }
-
- else if (axutil_strcmp(local_name, RP_CERTIFICATE) == 0)
- {
- if (rp_match_rampart_config_qname(env, RP_CERTIFICATE, node, element))
+ else if(!axutil_strcmp(local_name, RP_CERTIFICATE))
{
axis2_char_t *certificate_file = NULL;
certificate_file = axiom_element_get_text(element, env, node);
- return rp_rampart_config_set_certificate_file(rampart_config, env,
- certificate_file);
+ return rp_rampart_config_set_certificate_file(rampart_config, env, certificate_file);
}
- else
- return AXIS2_FAILURE;
- }
-
- else if (axutil_strcmp(local_name, RP_RECEIVER_CERTIFICATE) == 0)
- {
- if (rp_match_rampart_config_qname
- (env, RP_RECEIVER_CERTIFICATE, node, element))
+ else if(!axutil_strcmp(local_name, RP_RECEIVER_CERTIFICATE))
{
axis2_char_t *receiver_certificate_file = NULL;
- receiver_certificate_file =
- axiom_element_get_text(element, env, node);
- return
- rp_rampart_config_set_receiver_certificate_file(rampart_config,
- env,
- receiver_certificate_file);
+ receiver_certificate_file = axiom_element_get_text(element, env, node);
+ return rp_rampart_config_set_receiver_certificate_file(
+ rampart_config, env, receiver_certificate_file);
}
- else
- return AXIS2_FAILURE;
- }
-
- else if (axutil_strcmp(local_name, RP_PRIVATE_KEY) == 0)
- {
- if (rp_match_rampart_config_qname(env, RP_PRIVATE_KEY, node, element))
+ else if(!axutil_strcmp(local_name, RP_PRIVATE_KEY))
{
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);
+ return rp_rampart_config_set_private_key_file(rampart_config, env, private_key_file);
}
- else
- return AXIS2_FAILURE;
- }
- else if (axutil_strcmp(local_name, RP_PKCS12_KEY_STORE) == 0)
- {
- if (rp_match_rampart_config_qname(env, RP_PKCS12_KEY_STORE, node, element))
+ else if(!axutil_strcmp(local_name, RP_PKCS12_KEY_STORE))
{
axis2_char_t *pkcs12_key_store = NULL;
pkcs12_key_store = axiom_element_get_text(element, env, node);
- return rp_rampart_config_set_pkcs12_file(rampart_config, env,
- pkcs12_key_store);
+ return rp_rampart_config_set_pkcs12_file(rampart_config, env, pkcs12_key_store);
}
- else
- return AXIS2_FAILURE;
- }
- else if (axutil_strcmp(local_name, RP_TIME_TO_LIVE) == 0)
- {
- if (rp_match_rampart_config_qname(env, RP_TIME_TO_LIVE, node, element))
+ else if(!axutil_strcmp(local_name, RP_TIME_TO_LIVE))
{
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);
+ return rp_rampart_config_set_time_to_live(rampart_config, env, time_to_live);
}
- else
- return AXIS2_FAILURE;
- }
-
- else if (axutil_strcmp(local_name, RP_RD) == 0)
- {
- if (rp_match_rampart_config_qname(env, RP_RD, node, element))
+ else if(!axutil_strcmp(local_name, RP_RD))
{
axis2_char_t *rd_val = NULL;
rd_val = axiom_element_get_text(element, env, node);
- rp_rampart_config_set_rd_val(rampart_config, env, rd_val);
- return AXIS2_SUCCESS;
- }
- else
- {
- return AXIS2_FAILURE;
+ return rp_rampart_config_set_rd_val(rampart_config, env, rd_val);
}
}
- else
- return AXIS2_FAILURE;
+
+ /* either the assertion or the namespace is not identified */
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Unknown Assertion %s with namespace %s", local_name, ns);
+ return AXIS2_FAILURE;
+
+
}
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/saml_token_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/saml_token_builder.c?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/saml_token_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/saml_token_builder.c Thu Aug 14 01:03:32 2008
@@ -41,7 +41,7 @@
neethi_policy_t *normalized_policy = NULL;
saml_token = rp_saml_token_create(env);
- qname = axutil_qname_create(env, RP_INCLUDE_TOKEN, RP_SP_NS, RP_SP_PREFIX);
+ qname = axutil_qname_create(env, RP_INCLUDE_TOKEN, RP_SP_NS_11, RP_SP_PREFIX);
inclusion_value = axiom_element_get_attribute_value(element, env, qname);
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/security_context_token_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/security_context_token_builder.c?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/security_context_token_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/security_context_token_builder.c Thu Aug 14 01:03:32 2008
@@ -21,7 +21,6 @@
#include <neethi_exactlyone.h>
#include <neethi_all.h>
#include <neethi_engine.h>
-#include <rp_qname_matcher.h>
/*private functions*/
@@ -53,7 +52,7 @@
neethi_policy_t *normalized_policy = NULL;
security_context_token = rp_security_context_token_create(env);
- qname = axutil_qname_create(env, RP_INCLUDE_TOKEN, RP_SP_NS, RP_SP_PREFIX);
+ qname = axutil_qname_create(env, RP_INCLUDE_TOKEN, RP_SP_NS_11, RP_SP_PREFIX);
inclusion_value = axiom_element_get_attribute_value(element, env, qname);
@@ -87,15 +86,37 @@
localname = axiom_element_get_localname(child_element, env);
if (axutil_strcmp(localname, RP_ISSUER) == 0)
{
- if (rp_match_secpolicy_qname(env, RP_ISSUER, child_node, child_element))
+ axis2_char_t *ns = NULL;
+ axutil_qname_t *node_qname = NULL;
+
+ node_qname = axiom_element_get_qname(element, env, node);
+ if(!node_qname)
{
- axis2_char_t *issuer = NULL;
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot get qname from element %s.", localname);
+ return NULL;
+ }
+ ns = axutil_qname_get_uri(node_qname, env);
+ if(!ns)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot get namespace from element %s.", localname);
+ return NULL;
+ }
+ if(!(axutil_strcmp(ns, RP_SP_NS_11) && axutil_strcmp(ns, RP_SP_NS_12)))
+ {
+ axis2_char_t *issuer = NULL;
issuer = axiom_element_get_text(child_element, env, child_node);
- rp_security_context_token_set_issuer(security_context_token, env, issuer);
+ rp_security_context_token_set_issuer(
+ security_context_token, env, issuer);
}
else
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Unknown Assertion %s with namespace %s", localname, ns);
return NULL;
+ }
}
else
{
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signed_encrypted_parts_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signed_encrypted_parts_builder.c?rev=685799&r1=685798&r2=685799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signed_encrypted_parts_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signed_encrypted_parts_builder.c Thu Aug 14 01:03:32 2008
@@ -21,58 +21,47 @@
#include <neethi_exactlyone.h>
#include <neethi_all.h>
#include <neethi_engine.h>
-#include <rp_qname_matcher.h>
-rp_header_t *AXIS2_CALL rp_signed_encrypted_parts_builder_build_header(
+static rp_header_t *AXIS2_CALL rp_signed_encrypted_parts_builder_build_header(
axiom_element_t *element,
const axutil_env_t *env);
-axis2_status_t AXIS2_CALL rp_signed_encrypted_parts_builder_set_properties(
+static axis2_status_t AXIS2_CALL rp_signed_encrypted_parts_builder_set_properties(
axiom_node_t *node,
axiom_element_t *element,
axis2_char_t *local_name,
rp_signed_encrypted_parts_t *signed_encrypted_parts,
const axutil_env_t *env);
+/**
+ * Builts EncryptedParts or SignedParts assertion
+ * @param env Pointer to environment struct
+ * @param node Assertion node
+ * @param element Assertion element
+ * @param is_signed boolean showing whether signing or encryption
+ * @returns neethi assertion created. NULL if failure.
+ */
AXIS2_EXTERN neethi_assertion_t *AXIS2_CALL
rp_signed_encrypted_parts_builder_build(
const axutil_env_t *env,
axiom_node_t *parts,
- axiom_element_t *parts_ele)
+ axiom_element_t *parts_ele,
+ axis2_bool_t is_signed)
{
-
rp_signed_encrypted_parts_t *signed_encrypted_parts = NULL;
axiom_children_iterator_t *children_iter = NULL;
neethi_assertion_t *assertion = NULL;
- axis2_char_t *ele_name = NULL;
axis2_status_t status = AXIS2_SUCCESS;
- AXIS2_ENV_CHECK(env, NULL);
-
signed_encrypted_parts = rp_signed_encrypted_parts_create(env);
if (!signed_encrypted_parts)
{
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot create signed_encrypted_parts.");
return NULL;
}
- ele_name = axiom_element_get_localname(parts_ele, env);
- if (ele_name)
- {
- if ((axutil_strcmp(ele_name, RP_SIGNED_PARTS) == 0))
- {
- rp_signed_encrypted_parts_set_signedparts(signed_encrypted_parts,
- env, AXIS2_TRUE);
- }
- else if (axutil_strcmp(ele_name, RP_ENCRYPTED_PARTS) == 0)
- {
- rp_signed_encrypted_parts_set_signedparts(signed_encrypted_parts,
- env, AXIS2_FALSE);
- }
- else
- return NULL;
- }
- else
- return NULL;
+ rp_signed_encrypted_parts_set_signedparts(signed_encrypted_parts, env, is_signed);
children_iter = axiom_element_get_children(parts_ele, env, parts);
if (children_iter)
@@ -87,23 +76,22 @@
{
if (axiom_node_get_node_type(node, env) == AXIOM_ELEMENT)
{
- ele =
- (axiom_element_t *) axiom_node_get_data_element(node,
- env);
+ ele = (axiom_element_t *) axiom_node_get_data_element(node, env);
if (ele)
{
local_name = axiom_element_get_localname(ele, env);
if (local_name)
{
- status =
- rp_signed_encrypted_parts_builder_set_properties
- (node, ele, local_name, signed_encrypted_parts,
- env);
+ status = rp_signed_encrypted_parts_builder_set_properties
+ (node, ele, local_name, signed_encrypted_parts, env);
if (status != AXIS2_SUCCESS)
{
- rp_signed_encrypted_parts_free
- (signed_encrypted_parts, env);
+ rp_signed_encrypted_parts_free (signed_encrypted_parts, env);
signed_encrypted_parts = NULL;
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot create signed_encrypted_parts. "
+ "Error in processing child element %s", local_name);
+ return NULL;
}
}
}
@@ -111,15 +99,13 @@
}
}
}
- assertion =
- neethi_assertion_create_with_args(env,
- (AXIS2_FREE_VOID_ARG)rp_signed_encrypted_parts_free,
- signed_encrypted_parts,
- ASSERTION_TYPE_SIGNED_ENCRYPTED_PARTS);
+ assertion = neethi_assertion_create_with_args(
+ env, (AXIS2_FREE_VOID_ARG)rp_signed_encrypted_parts_free,
+ signed_encrypted_parts, ASSERTION_TYPE_SIGNED_ENCRYPTED_PARTS);
return assertion;
}
-axis2_status_t AXIS2_CALL
+static axis2_status_t AXIS2_CALL
rp_signed_encrypted_parts_builder_set_properties(
axiom_node_t *node,
axiom_element_t *element,
@@ -127,46 +113,66 @@
rp_signed_encrypted_parts_t * signed_encrypted_parts,
const axutil_env_t *env)
{
- if (strcmp(local_name, RP_BODY) == 0)
+ axis2_char_t *ns = NULL;
+ axutil_qname_t *node_qname = NULL;
+
+ node_qname = axiom_element_get_qname(element, env, node);
+ if(!node_qname)
{
- if (rp_match_secpolicy_qname(env, RP_BODY, node, element))
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot get qname from element %s.", local_name);
+ return AXIS2_FAILURE;
+ }
+
+ ns = axutil_qname_get_uri(node_qname, env);
+ if(!ns)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot get namespace from element %s.", local_name);
+ return AXIS2_FAILURE;
+ }
+
+ /* process assertions common for WS-SecPolicy 1.1 and 1.2 */
+ if(!(axutil_strcmp(ns, RP_SP_NS_11) && axutil_strcmp(ns, RP_SP_NS_12)))
+ {
+ /* this assertion is in WS-SecurityPolicy namespace */
+ if(!strcmp(local_name, RP_BODY))
{
- rp_signed_encrypted_parts_set_body(signed_encrypted_parts, env,
- AXIS2_TRUE);
+ rp_signed_encrypted_parts_set_body(signed_encrypted_parts, env, AXIS2_TRUE);
return AXIS2_SUCCESS;
}
- else
- {
- return AXIS2_FAILURE;
- }
- }
- else if (strcmp(local_name, RP_HEADER) == 0)
- {
- if (rp_match_secpolicy_qname(env, RP_HEADER, node, element))
+ else if(!strcmp(local_name, RP_HEADER))
{
rp_header_t *header = NULL;
- header =
- rp_signed_encrypted_parts_builder_build_header(element, env);
- if (!header)
+ header = rp_signed_encrypted_parts_builder_build_header(element, env);
+ if(!header)
{
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Failed to process Header Assertion.");
return AXIS2_FAILURE;
}
- return rp_signed_encrypted_parts_add_header(signed_encrypted_parts,
- env, header);
- }
- else
- {
- return AXIS2_FAILURE;
+ return rp_signed_encrypted_parts_add_header(signed_encrypted_parts, env, header);
}
}
- else
+
+ /* process assertions specific to WS-SecPolicy 1.2 */
+ if(!axutil_strcmp(ns, RP_SP_NS_12))
{
- return AXIS2_FAILURE;
+ if(!strcmp(local_name, RP_ATTACHMENTS))
+ {
+ rp_signed_encrypted_parts_set_attachments(signed_encrypted_parts, env, AXIS2_TRUE);
+ return AXIS2_SUCCESS;
+ }
}
+
+ /* either namespace or assertion is not understood */
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Unknown Assertion %s with namespace %s", local_name, ns);
+ return AXIS2_FAILURE;
}
-rp_header_t *AXIS2_CALL
+static rp_header_t *AXIS2_CALL
rp_signed_encrypted_parts_builder_build_header(
axiom_element_t *element,
const axutil_env_t *env)
@@ -175,25 +181,28 @@
axis2_char_t *name = NULL;
axis2_char_t *nspace = NULL;
- header = rp_header_create(env);
- if (!header)
- return NULL;
-
name = axiom_element_get_attribute_value_by_name(element, env, RP_NAME);
- nspace =
- axiom_element_get_attribute_value_by_name(element, env, RP_NAMESPACE);
+ nspace = axiom_element_get_attribute_value_by_name(element, env, RP_NAMESPACE);
if (!nspace)
{
- rp_header_free(header, env);
- header = NULL;
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Header assertion should have namespace associated with it.");
+ return NULL;
+ }
+
+ header = rp_header_create(env);
+ if (!header)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[neethi] Cannot create rp_header structure. Insufficient memory.");
return NULL;
}
+
if (name)
{
rp_header_set_name(header, env, name);
}
rp_header_set_namespace(header, env, nspace);
-
return header;
}