You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sh...@apache.org on 2008/01/29 08:02:50 UTC
svn commit: r616187 - in /webservices/axis2/trunk/c: ides/vc/axis2c/neethi/
neethi/include/ neethi/src/ neethi/src/secpolicy/builder/
neethi/src/secpolicy/model/
Author: shankar
Date: Mon Jan 28 23:02:48 2008
New Revision: 616187
URL: http://svn.apache.org/viewvc?rev=616187&view=rev
Log:
SecurityContextToken assertion and SecureConversationToken assertion support
Added:
webservices/axis2/trunk/c/neethi/include/rp_bootstrap_policy_builder.h
webservices/axis2/trunk/c/neethi/include/rp_security_context_token_builder.h
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/bootstrap_policy_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/security_context_token_builder.c
Modified:
webservices/axis2/trunk/c/ides/vc/axis2c/neethi/neethi.vcproj
webservices/axis2/trunk/c/neethi/include/neethi_assertion.h
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_encryption_token_builder.h
webservices/axis2/trunk/c/neethi/include/rp_protection_token_builder.h
webservices/axis2/trunk/c/neethi/include/rp_security_context_token.h
webservices/axis2/trunk/c/neethi/include/rp_signature_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/Makefile.am
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/encryption_token_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/protection_token_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signature_token_builder.c
webservices/axis2/trunk/c/neethi/src/secpolicy/model/property.c
webservices/axis2/trunk/c/neethi/src/secpolicy/model/security_context_token.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=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/ides/vc/axis2c/neethi/neethi.vcproj (original)
+++ webservices/axis2/trunk/c/ides/vc/axis2c/neethi/neethi.vcproj Mon Jan 28 23:02:48 2008
@@ -239,6 +239,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\neethi\src\secpolicy\builder\bootstrap_policy_builder.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\neethi\src\secpolicy\builder\encryption_token_builder.c"
>
</File>
@@ -275,6 +279,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\neethi\src\secpolicy\builder\security_context_token_builder.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\neethi\src\secpolicy\builder\signature_token_builder.c"
>
</File>
@@ -495,6 +503,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\neethi\include\rp_bootstrap_policy_builder.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\neethi\include\rp_builders.h"
>
</File>
@@ -576,6 +588,10 @@
</File>
<File
RelativePath="..\..\..\..\neethi\include\rp_security_context_token.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\neethi\include\rp_security_context_token_builder.h"
>
</File>
<File
Modified: webservices/axis2/trunk/c/neethi/include/neethi_assertion.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/neethi_assertion.h?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/neethi_assertion.h (original)
+++ webservices/axis2/trunk/c/neethi/include/neethi_assertion.h Mon Jan 28 23:02:48 2008
@@ -47,6 +47,11 @@
ASSERTION_TYPE_WSS_USERNAME_TOKEN_11,
ASSERTION_TYPE_USERNAME_TOKEN,
ASSERTION_TYPE_X509_TOKEN,
+ ASSERTION_TYPE_SECURITY_CONTEXT_TOKEN,
+ ASSERTION_TYPE_REQUIRE_EXTERNAL_URI,
+ ASSERTION_TYPE_SC10_SECURITY_CONTEXT_TOKEN,
+ ASSERTION_TYPE_ISSUER,
+ ASSERTION_TYPE_BOOTSTRAP_POLICY,
ASSERTION_TYPE_MUST_SUPPORT_REF_KEY_IDENTIFIER,
ASSERTION_TYPE_MUST_SUPPORT_REF_ISSUER_SERIAL,
ASSERTION_TYPE_MUST_SUPPORT_REF_EXTERNAL_URI,
Added: webservices/axis2/trunk/c/neethi/include/rp_bootstrap_policy_builder.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_bootstrap_policy_builder.h?rev=616187&view=auto
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_bootstrap_policy_builder.h (added)
+++ webservices/axis2/trunk/c/neethi/include/rp_bootstrap_policy_builder.h Mon Jan 28 23:02:48 2008
@@ -0,0 +1,44 @@
+
+/*
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RP_BOOTSTRAP_POLICY_BUILDER_H
+#define RP_BOOTSTRAP_POLICY_BUILDER_H
+
+/** @defgroup rp_bootstrap_policy_builder
+ * @ingroup rp_bootstrap_policy_builder
+ * @{
+ */
+
+#include <rp_includes.h>
+#include <rp_property.h>
+#include <neethi_assertion.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ AXIS2_EXTERN neethi_assertion_t *AXIS2_CALL
+ rp_bootstrap_policy_builder_build(
+ const axutil_env_t * env,
+ axiom_node_t * node,
+ axiom_element_t * element);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
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=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_builders.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_builders.h Mon Jan 28 23:02:48 2008
@@ -33,6 +33,8 @@
#include <rp_qname_matcher.h>
#include <rp_https_token_builder.h>
#include <rp_x509_token_builder.h>
+#include <rp_security_context_token_builder.h>
+#include <rp_bootstrap_policy_builder.h>
#include <rp_recipient_token_builder.h>
#include <rp_initiator_token_builder.h>
#include <rp_asymmetric_binding_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=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_defines.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_defines.h Mon Jan 28 23:02:48 2008
@@ -145,6 +145,7 @@
#define RP_USERNAME_TOKEN "UsernameToken"
#define RP_X509_TOKEN "X509Token"
#define RP_SECURITY_CONTEXT_TOKEN "SecurityContextToken"
+#define RP_SECURE_CONVERSATION_TOKEN "SecureConversationToken"
#define RP_HTTPS_TOKEN "HttpsToken"
#define RP_INCLUDE_TOKEN "IncludeToken"
@@ -172,6 +173,8 @@
#define RP_REQUIRE_EXTERNAL_URI_REFERENCE "RequireExternalUriReference"
#define RP_SC10_SECURITY_CONTEXT_TOKEN "SC10SecurityContextToken"
+#define RP_BOOTSTRAP_POLICY "BootstrapPolicy"
+#define RP_ISSUER "Issuer"
#define RP_REQUIRE_CLIENT_CERTIFICATE "RequireClientCertificate"
Modified: webservices/axis2/trunk/c/neethi/include/rp_encryption_token_builder.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_encryption_token_builder.h?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_encryption_token_builder.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_encryption_token_builder.h Mon Jan 28 23:02:48 2008
@@ -26,6 +26,7 @@
#include <rp_includes.h>
#include <rp_property.h>
#include <rp_x509_token.h>
+#include <rp_security_context_token.h>
#include <neethi_assertion.h>
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/neethi/include/rp_protection_token_builder.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_protection_token_builder.h?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_protection_token_builder.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_protection_token_builder.h Mon Jan 28 23:02:48 2008
@@ -26,6 +26,7 @@
#include <rp_includes.h>
#include <rp_property.h>
#include <rp_x509_token.h>
+#include <rp_security_context_token.h>
#include <neethi_assertion.h>
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/neethi/include/rp_security_context_token.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_security_context_token.h?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_security_context_token.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_security_context_token.h Mon Jan 28 23:02:48 2008
@@ -24,6 +24,7 @@
*/
#include <rp_includes.h>
+#include <neethi_policy.h>
#ifdef __cplusplus
extern "C"
@@ -84,6 +85,39 @@
rp_security_context_token_t * security_context_token,
const axutil_env_t * env,
axis2_bool_t sc10_security_context_token);
+
+ AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+ rp_security_context_token_get_issuer(
+ rp_security_context_token_t *security_context_token,
+ const axutil_env_t *env);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ rp_security_context_token_set_issuer(
+ rp_security_context_token_t * security_context_token,
+ const axutil_env_t * env,
+ axis2_char_t *issuer);
+
+ AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
+ rp_security_context_token_get_bootstrap_policy(
+ rp_security_context_token_t *security_context_token,
+ const axutil_env_t *env);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ rp_security_context_token_set_bootstrap_policy(
+ rp_security_context_token_t * security_context_token,
+ const axutil_env_t * env,
+ neethi_policy_t *bootstrap_policy);
+
+ AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+ rp_security_context_token_get_is_secure_conversation_token(
+ rp_security_context_token_t *security_context_token,
+ const axutil_env_t *env);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ rp_security_context_token_set_is_secure_conversation_token(
+ rp_security_context_token_t * security_context_token,
+ const axutil_env_t * env,
+ axis2_bool_t is_secure_conversation_token);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_security_context_token_increment_ref(
Added: webservices/axis2/trunk/c/neethi/include/rp_security_context_token_builder.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_security_context_token_builder.h?rev=616187&view=auto
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_security_context_token_builder.h (added)
+++ webservices/axis2/trunk/c/neethi/include/rp_security_context_token_builder.h Mon Jan 28 23:02:48 2008
@@ -0,0 +1,46 @@
+
+/*
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RP_SECURITY_CONTEXT_TOKEN_BUILDER_H
+#define RP_SECURITY_CONTEXT_TOKEN_BUILDER_H
+
+/** @defgroup rp_security_context_token_builder
+ * @ingroup rp_security_context_token_builder
+ * @{
+ */
+
+#include <rp_includes.h>
+#include <rp_property.h>
+#include <rp_security_context_token.h>
+#include <neethi_assertion.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ AXIS2_EXTERN neethi_assertion_t *AXIS2_CALL
+ rp_security_context_token_builder_build(
+ const axutil_env_t * env,
+ axiom_node_t * node,
+ axiom_element_t * element,
+ axis2_bool_t *is_secure_conversation_token);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
Modified: webservices/axis2/trunk/c/neethi/include/rp_signature_token_builder.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/include/rp_signature_token_builder.h?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/include/rp_signature_token_builder.h (original)
+++ webservices/axis2/trunk/c/neethi/include/rp_signature_token_builder.h Mon Jan 28 23:02:48 2008
@@ -26,6 +26,7 @@
#include <rp_includes.h>
#include <rp_property.h>
#include <rp_x509_token.h>
+#include <rp_security_context_token.h>
#include <neethi_assertion.h>
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/neethi/src/assertion.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/assertion.c?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/assertion.c (original)
+++ webservices/axis2/trunk/c/neethi/src/assertion.c Mon Jan 28 23:02:48 2008
@@ -115,84 +115,88 @@
{
rp_x509_token_increment_ref((rp_x509_token_t *) value, env);
}
- if (type == ASSERTION_TYPE_INITIATOR_TOKEN)
+ else if (type == ASSERTION_TYPE_SECURITY_CONTEXT_TOKEN)
+ {
+ rp_security_context_token_increment_ref((rp_security_context_token_t *) value, env);
+ }
+ else if (type == ASSERTION_TYPE_INITIATOR_TOKEN)
{
rp_property_increment_ref((rp_property_t *) value, env);
}
- if (type == ASSERTION_TYPE_RECIPIENT_TOKEN)
+ else if (type == ASSERTION_TYPE_RECIPIENT_TOKEN)
{
rp_property_increment_ref((rp_property_t *) value, env);
}
- if (type == ASSERTION_TYPE_PROTECTION_TOKEN)
+ else if (type == ASSERTION_TYPE_PROTECTION_TOKEN)
{
rp_property_increment_ref((rp_property_t *) value, env);
}
- if (type == ASSERTION_TYPE_ENCRYPTION_TOKEN)
+ else if (type == ASSERTION_TYPE_ENCRYPTION_TOKEN)
{
rp_property_increment_ref((rp_property_t *) value, env);
}
- if (type == ASSERTION_TYPE_TRANSPORT_TOKEN)
+ else if (type == ASSERTION_TYPE_TRANSPORT_TOKEN)
{
rp_property_increment_ref((rp_property_t *) value, env);
}
- if (type == ASSERTION_TYPE_SIGNATURE_TOKEN)
+ else if (type == ASSERTION_TYPE_SIGNATURE_TOKEN)
{
rp_property_increment_ref((rp_property_t *) value, env);
}
- if (type == ASSERTION_TYPE_LAYOUT)
+ else if (type == ASSERTION_TYPE_LAYOUT)
{
rp_layout_increment_ref((rp_layout_t *) value, env);
}
- if (type == ASSERTION_TYPE_ALGORITHM_SUITE)
+ else if (type == ASSERTION_TYPE_ALGORITHM_SUITE)
{
rp_algorithmsuite_increment_ref((rp_algorithmsuite_t *) value, env);
}
- if (type == ASSERTION_TYPE_WSS10)
+ else if (type == ASSERTION_TYPE_WSS10)
{
rp_wss10_increment_ref((rp_wss10_t *) value, env);
}
- if (type == ASSERTION_TYPE_WSS11)
+ else if (type == ASSERTION_TYPE_WSS11)
{
rp_wss11_increment_ref((rp_wss11_t *) value, env);
}
- if (type == ASSERTION_TYPE_TRUST10)
+ else if (type == ASSERTION_TYPE_TRUST10)
{
rp_trust10_increment_ref((rp_trust10_t *) value, env);
}
- if (type == ASSERTION_TYPE_SUPPORTING_TOKENS)
+ else if (type == ASSERTION_TYPE_SUPPORTING_TOKENS)
{
rp_supporting_tokens_increment_ref((rp_supporting_tokens_t *) value,
env);
}
- if (type == ASSERTION_TYPE_USERNAME_TOKEN)
+ else if (type == ASSERTION_TYPE_USERNAME_TOKEN)
{
rp_username_token_increment_ref((rp_username_token_t *) value, env);
}
- if (type == ASSERTION_TYPE_ASSYMMETRIC_BINDING)
+ else if (type == ASSERTION_TYPE_ASSYMMETRIC_BINDING)
{
rp_asymmetric_binding_increment_ref((rp_asymmetric_binding_t *) value,
env);
}
- if (type == ASSERTION_TYPE_SYMMETRIC_BINDING)
+ else if (type == ASSERTION_TYPE_SYMMETRIC_BINDING)
{
rp_symmetric_binding_increment_ref((rp_symmetric_binding_t *) value,
env);
}
- if (type == ASSERTION_TYPE_TRANSPORT_BINDING)
+ else if (type == ASSERTION_TYPE_TRANSPORT_BINDING)
{
rp_transport_binding_increment_ref((rp_transport_binding_t *) value,
env);
}
- if (type == ASSERTION_TYPE_SIGNED_ENCRYPTED_PARTS)
+ else if (type == ASSERTION_TYPE_SIGNED_ENCRYPTED_PARTS)
{
rp_signed_encrypted_parts_increment_ref((rp_signed_encrypted_parts_t *)
value, env);
}
- if (type == ASSERTION_TYPE_RAMPART_CONFIG)
+ else if (type == ASSERTION_TYPE_RAMPART_CONFIG)
{
rp_rampart_config_increment_ref((rp_rampart_config_t *) value, env);
}
@@ -283,6 +287,10 @@
if (type == ASSERTION_TYPE_X509_TOKEN)
{
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;
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=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/assertion_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/assertion_builder.c Mon Jan 28 23:02:48 2008
@@ -132,6 +132,24 @@
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))
+ {
+ 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))
+ {
+ 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
@@ -495,6 +513,15 @@
else
return NULL;
}
+ else if(axutil_strcmp(localname, RP_BOOTSTRAP_POLICY) == 0)
+ {
+ if (rp_match_secpolicy_qname(env, RP_BOOTSTRAP_POLICY, node, element))
+ {
+ 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
@@ -627,7 +654,49 @@
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))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ 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))
+ {
+ neethi_assertion_t *assertion = NULL;
+ assertion = neethi_assertion_create(env);
+ 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))
+ {
+ neethi_assertion_t *assertion = NULL;
+ axis2_char_t *issuer = NULL;
+ issuer = axiom_element_get_text(element, env, node);
+ assertion = neethi_assertion_create(env);
+ neethi_assertion_set_value(assertion, env, issuer, ASSERTION_TYPE_ISSUER);
+ return assertion;
+ }
+ else
+ return NULL;
+ }
else
{
AXIS2_ERROR_SET(env->error,
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/Makefile.am?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/Makefile.am (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/Makefile.am Mon Jan 28 23:02:48 2008
@@ -11,7 +11,8 @@
asymmetric_binding_builder.c x509_token_builder.c initiator_token_builder.c \
recipient_token_builder.c signed_encrypted_parts_builder.c secpolicy_builder.c \
symmetric_binding_builder.c protection_token_builder.c signature_token_builder.c \
- encryption_token_builder.c wss11_builder.c trust10_builder.c
+ encryption_token_builder.c wss11_builder.c trust10_builder.c \
+ bootstrap_policy_builder.c security_context_token_builder.c
librp_builder_la_LIBADD = ../../../../axiom/src/om/libaxis2_axiom.la \
../../../../util/src/libaxutil.la
Added: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/bootstrap_policy_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/bootstrap_policy_builder.c?rev=616187&view=auto
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/bootstrap_policy_builder.c (added)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/bootstrap_policy_builder.c Mon Jan 28 23:02:48 2008
@@ -0,0 +1,76 @@
+
+/*
+ * 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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <rp_bootstrap_policy_builder.h>
+#include <neethi_operator.h>
+#include <neethi_policy.h>
+#include <neethi_exactlyone.h>
+#include <neethi_all.h>
+#include <neethi_engine.h>
+
+AXIS2_EXTERN neethi_assertion_t *AXIS2_CALL
+rp_bootstrap_policy_builder_build(
+ const axutil_env_t * env,
+ axiom_node_t * node,
+ axiom_element_t * element)
+{
+ neethi_policy_t *policy = NULL;
+ axiom_node_t *child_node = NULL;
+ axiom_element_t *child_element = NULL;
+ axutil_array_list_t *alternatives = NULL;
+ neethi_operator_t *component = NULL;
+ neethi_all_t *all = NULL;
+ axis2_char_t *inclusion_value = NULL;
+ axutil_qname_t *qname = NULL;
+ neethi_assertion_t *assertion = NULL;
+ neethi_policy_t *normalized_policy = NULL;
+
+ child_node = axiom_node_get_first_element(node, env);
+ if (!child_node)
+ {
+ return NULL;
+ }
+
+ if (axiom_node_get_node_type(child_node, env) == AXIOM_ELEMENT)
+ {
+ child_element =
+ (axiom_element_t *) axiom_node_get_data_element(child_node, env);
+ if (child_element)
+ {
+ policy = neethi_engine_get_policy(env, child_node, child_element);
+ if (!policy)
+ {
+ return NULL;
+ }
+ normalized_policy =
+ neethi_engine_get_normalize(env, AXIS2_FALSE, policy);
+ neethi_policy_free(policy, env);
+ policy = NULL;
+
+ assertion = neethi_assertion_create_with_args(env,
+ (void *) neethi_policy_free,
+ normalized_policy,
+ ASSERTION_TYPE_BOOTSTRAP_POLICY);
+ return assertion;
+ }
+ else
+ return NULL;
+ }
+ else
+ return NULL;
+}
\ No newline at end of file
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/encryption_token_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/encryption_token_builder.c?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/encryption_token_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/encryption_token_builder.c Mon Jan 28 23:02:48 2008
@@ -140,6 +140,19 @@
else
return AXIS2_FAILURE;
}
+ else if (type == ASSERTION_TYPE_SECURITY_CONTEXT_TOKEN)
+ {
+ rp_security_context_token_t *security_context_token = NULL;
+ security_context_token =
+ (rp_security_context_token_t *) neethi_assertion_get_value(assertion, env);
+
+ if (security_context_token)
+ {
+ rp_property_set_value(encryption_token, env, security_context_token, RP_PROPERTY_SECURITY_CONTEXT_TOKEN);
+ }
+ else
+ return AXIS2_FAILURE;
+ }
else
return AXIS2_FAILURE;
}
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/protection_token_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/protection_token_builder.c?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/protection_token_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/protection_token_builder.c Mon Jan 28 23:02:48 2008
@@ -140,6 +140,19 @@
else
return AXIS2_FAILURE;
}
+ else if (type == ASSERTION_TYPE_SECURITY_CONTEXT_TOKEN)
+ {
+ rp_security_context_token_t *security_context_token = NULL;
+ security_context_token =
+ (rp_security_context_token_t *) neethi_assertion_get_value(assertion, env);
+
+ if (security_context_token)
+ {
+ rp_property_set_value(protection_token, env, security_context_token, RP_PROPERTY_SECURITY_CONTEXT_TOKEN);
+ }
+ else
+ return AXIS2_FAILURE;
+ }
else
return AXIS2_FAILURE;
}
Added: 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=616187&view=auto
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/security_context_token_builder.c (added)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/security_context_token_builder.c Mon Jan 28 23:02:48 2008
@@ -0,0 +1,167 @@
+
+/*
+ * 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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <rp_security_context_token_builder.h>
+#include <neethi_operator.h>
+#include <neethi_policy.h>
+#include <neethi_exactlyone.h>
+#include <neethi_all.h>
+#include <neethi_engine.h>
+
+/*private functions*/
+
+axis2_status_t AXIS2_CALL security_context_token_process_alternatives(
+ const axutil_env_t * env,
+ neethi_all_t * all,
+ rp_security_context_token_t * security_context_token);
+
+/***********************************/
+
+AXIS2_EXTERN neethi_assertion_t *AXIS2_CALL
+rp_security_context_token_builder_build(
+ const axutil_env_t * env,
+ axiom_node_t * node,
+ axiom_element_t * element,
+ axis2_bool_t *is_secure_conversation_token)
+{
+ rp_security_context_token_t *security_context_token = NULL;
+ neethi_policy_t *policy = NULL;
+ axiom_node_t *child_node = NULL;
+ axiom_element_t *child_element = NULL;
+ axutil_array_list_t *alternatives = NULL;
+ neethi_operator_t *component = NULL;
+ neethi_all_t *all = NULL;
+ axis2_char_t *inclusion_value = NULL;
+ axutil_qname_t *qname = NULL;
+ neethi_assertion_t *assertion = NULL;
+ neethi_policy_t *normalized_policy = NULL;
+ /*axutil_array_list_t *temp = NULL; */
+
+ security_context_token = rp_security_context_token_create(env);
+ qname = axutil_qname_create(env, RP_INCLUDE_TOKEN, RP_SP_NS, RP_SP_PREFIX);
+
+ inclusion_value = axiom_element_get_attribute_value(element, env, qname);
+
+ axutil_qname_free(qname, env);
+ qname = NULL;
+
+ rp_security_context_token_set_inclusion(security_context_token, env, inclusion_value);
+ rp_security_context_token_set_is_secure_conversation_token(security_context_token, env, is_secure_conversation_token);
+
+ child_node = axiom_node_get_first_element(node, env);
+ if (!child_node)
+ {
+ return NULL;
+ }
+
+ if (axiom_node_get_node_type(child_node, env) == AXIOM_ELEMENT)
+ {
+ child_element =
+ (axiom_element_t *) axiom_node_get_data_element(child_node, env);
+ if (child_element)
+ {
+ policy = neethi_engine_get_policy(env, child_node, child_element);
+ if (!policy)
+ {
+ return NULL;
+ }
+ normalized_policy =
+ neethi_engine_get_normalize(env, AXIS2_FALSE, policy);
+ neethi_policy_free(policy, env);
+ policy = NULL;
+ alternatives =
+ neethi_policy_get_alternatives(normalized_policy, env);
+ component =
+ (neethi_operator_t *) axutil_array_list_get(alternatives, env,
+ 0);
+ all = (neethi_all_t *) neethi_operator_get_value(component, env);
+ security_context_token_process_alternatives(env, all, security_context_token);
+
+ assertion =
+ neethi_assertion_create_with_args(env,
+ (void *) rp_security_context_token_free,
+ security_context_token,
+ ASSERTION_TYPE_SECURITY_CONTEXT_TOKEN);
+
+ neethi_policy_free(normalized_policy, env);
+ normalized_policy = NULL;
+
+ return assertion;
+ }
+ else
+ return NULL;
+ }
+ else
+ return NULL;
+}
+
+axis2_status_t AXIS2_CALL
+security_context_token_process_alternatives(
+ const axutil_env_t * env,
+ neethi_all_t * all,
+ rp_security_context_token_t * security_context_token)
+{
+ neethi_operator_t *operator = NULL;
+ axutil_array_list_t *arraylist = NULL;
+ neethi_assertion_t *assertion = NULL;
+ neethi_assertion_type_t type;
+
+ int i = 0;
+
+ arraylist = neethi_all_get_policy_components(all, env);
+
+ for (i = 0; i < axutil_array_list_size(arraylist, env); i++)
+ {
+ operator =(neethi_operator_t *) axutil_array_list_get(arraylist, env,
+ i);
+ assertion =
+ (neethi_assertion_t *) neethi_operator_get_value(operator, env);
+ type = neethi_assertion_get_type(assertion, env);
+
+ if(type == ASSERTION_TYPE_REQUIRE_DERIVED_KEYS)
+ {
+ rp_security_context_token_set_derivedkeys(security_context_token, env,
+ AXIS2_TRUE);
+ }
+ else if(type == ASSERTION_TYPE_REQUIRE_EXTERNAL_URI)
+ {
+ rp_security_context_token_set_require_external_uri_ref(security_context_token, env,
+ AXIS2_TRUE);
+ }
+ else if(type == ASSERTION_TYPE_SC10_SECURITY_CONTEXT_TOKEN)
+ {
+ rp_security_context_token_set_sc10_security_context_token(security_context_token, env,
+ AXIS2_TRUE);
+ }
+ else if(type == ASSERTION_TYPE_ISSUER)
+ {
+ axis2_char_t* issuer = NULL;
+ issuer = (axis2_char_t *)neethi_assertion_get_value(assertion, env);
+ rp_security_context_token_set_issuer(security_context_token, env, issuer);
+ }
+ else if(type == ASSERTION_TYPE_BOOTSTRAP_POLICY)
+ {
+ neethi_policy_t *bootstrap_policy = NULL;
+ bootstrap_policy = (neethi_policy_t *)neethi_assertion_get_value(assertion, env);
+ rp_security_context_token_set_bootstrap_policy(security_context_token, env, bootstrap_policy);
+ }
+ else
+ return AXIS2_FAILURE;
+ }
+ return AXIS2_SUCCESS;
+}
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signature_token_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signature_token_builder.c?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signature_token_builder.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/builder/signature_token_builder.c Mon Jan 28 23:02:48 2008
@@ -140,6 +140,19 @@
else
return AXIS2_FAILURE;
}
+ else if (type == ASSERTION_TYPE_SECURITY_CONTEXT_TOKEN)
+ {
+ rp_security_context_token_t *security_context_token = NULL;
+ security_context_token =
+ (rp_security_context_token_t *) neethi_assertion_get_value(assertion, env);
+
+ if (security_context_token)
+ {
+ rp_property_set_value(signature_token, env, security_context_token, RP_PROPERTY_SECURITY_CONTEXT_TOKEN);
+ }
+ else
+ return AXIS2_FAILURE;
+ }
else
return AXIS2_FAILURE;
}
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/model/property.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/model/property.c?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/model/property.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/model/property.c Mon Jan 28 23:02:48 2008
@@ -189,40 +189,44 @@
{
rp_x509_token_increment_ref((rp_x509_token_t *) value, env);
}
- if (type == RP_PROPERTY_WSS10)
+ else if (type == RP_PROPERTY_SECURITY_CONTEXT_TOKEN)
+ {
+ rp_security_context_token_increment_ref((rp_security_context_token_t *)value, env);
+ }
+ else if (type == RP_PROPERTY_WSS10)
{
rp_wss10_increment_ref((rp_wss10_t *) value, env);
}
- if (type == RP_PROPERTY_WSS11)
+ else if (type == RP_PROPERTY_WSS11)
{
rp_wss11_increment_ref((rp_wss11_t *) value, env);
}
- if (type == RP_PROPERTY_USERNAME_TOKEN)
+ else if (type == RP_PROPERTY_USERNAME_TOKEN)
{
rp_username_token_increment_ref((rp_username_token_t *) value, env);
}
- if (type == RP_PROPERTY_HTTPS_TOKEN)
+ else if (type == RP_PROPERTY_HTTPS_TOKEN)
{
rp_https_token_increment_ref((rp_https_token_t *) value, env);
}
- if (type == RP_PROPERTY_SIGNED_SUPPORTING_TOKEN)
+ else if (type == RP_PROPERTY_SIGNED_SUPPORTING_TOKEN)
{
rp_supporting_tokens_increment_ref((rp_supporting_tokens_t *) value,
env);
}
- if (type == RP_PROPERTY_ASYMMETRIC_BINDING)
+ else if (type == RP_PROPERTY_ASYMMETRIC_BINDING)
{
rp_asymmetric_binding_increment_ref((rp_asymmetric_binding_t *) value,
env);
}
- if (type == RP_PROPERTY_TRANSPORT_BINDING)
+ else if (type == RP_PROPERTY_TRANSPORT_BINDING)
{
rp_transport_binding_increment_ref((rp_transport_binding_t *) value,
env);
}
- if (type == RP_PROPERTY_SYMMETRIC_BINDING)
+ else if (type == RP_PROPERTY_SYMMETRIC_BINDING)
{
rp_symmetric_binding_increment_ref((rp_symmetric_binding_t *) value,
env);
Modified: webservices/axis2/trunk/c/neethi/src/secpolicy/model/security_context_token.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/neethi/src/secpolicy/model/security_context_token.c?rev=616187&r1=616186&r2=616187&view=diff
==============================================================================
--- webservices/axis2/trunk/c/neethi/src/secpolicy/model/security_context_token.c (original)
+++ webservices/axis2/trunk/c/neethi/src/secpolicy/model/security_context_token.c Mon Jan 28 23:02:48 2008
@@ -24,6 +24,9 @@
axis2_bool_t derivedkeys;
axis2_bool_t require_external_uri_ref;
axis2_bool_t sc10_security_context_token;
+ axis2_char_t *issuer;
+ neethi_policy_t *bootstrap_policy;
+ axis2_bool_t is_secure_conversation_token;
int ref;
};
@@ -49,6 +52,9 @@
security_context_token->derivedkeys = AXIS2_FALSE;
security_context_token->require_external_uri_ref = AXIS2_FALSE;
security_context_token->sc10_security_context_token = AXIS2_FALSE;
+ security_context_token->bootstrap_policy = NULL;
+ security_context_token->issuer = NULL;
+ security_context_token->is_secure_conversation_token = AXIS2_FALSE;
security_context_token->ref = 0;
return security_context_token;
@@ -69,6 +75,11 @@
return;
}
+ if(security_context_token->bootstrap_policy)
+ {
+ neethi_policy_free(security_context_token->bootstrap_policy, env);
+ }
+
AXIS2_FREE(env->allocator, security_context_token);
security_context_token = NULL;
}
@@ -169,6 +180,71 @@
security_context_token->sc10_security_context_token =
sc10_security_context_token;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_security_context_token_get_issuer(
+ rp_security_context_token_t *security_context_token,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ return security_context_token->issuer;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_security_context_token_set_issuer(
+ rp_security_context_token_t * security_context_token,
+ const axutil_env_t * env,
+ axis2_char_t *issuer)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, issuer, AXIS2_FAILURE);
+
+ security_context_token->issuer = issuer;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
+rp_security_context_token_get_bootstrap_policy(
+ rp_security_context_token_t *security_context_token,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ return security_context_token->bootstrap_policy;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_security_context_token_set_bootstrap_policy(
+ rp_security_context_token_t * security_context_token,
+ const axutil_env_t * env,
+ neethi_policy_t *bootstrap_policy)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, bootstrap_policy, AXIS2_FAILURE);
+
+ security_context_token->bootstrap_policy = bootstrap_policy;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+rp_security_context_token_get_is_secure_conversation_token(
+ rp_security_context_token_t *security_context_token,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ return security_context_token->is_secure_conversation_token;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_security_context_token_set_is_secure_conversation_token(
+ rp_security_context_token_t * security_context_token,
+ const axutil_env_t * env,
+ axis2_bool_t is_secure_conversation_token)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ security_context_token->is_secure_conversation_token = is_secure_conversation_token;
return AXIS2_SUCCESS;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org