/* | |
* 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. | |
*/ | |
#ifndef RAMPART_SAML_TOKEN_H | |
#define RAMPART_SAML_TOKEN_H | |
#include <rampart_saml_token.h> | |
#include <oxs_saml_token.h> | |
#include <axutil_utils.h> | |
#include <axiom.h> | |
#include <axis2_msg_ctx.h> | |
#include <oxs_key.h> | |
#include <rp_property.h> | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
/* | |
* Rampart saml token subject confirmation types. Rampart support both holder | |
* of key and sender vouches methods of subject confiramtions. | |
*/ | |
typedef enum | |
{ | |
RAMPART_ST_CONFIR_TYPE_UNSPECIFIED = 0, | |
RAMPART_ST_CONFIR_TYPE_SENDER_VOUCHES, | |
RAMPART_ST_CONFIR_TYPE_HOLDER_OF_KEY | |
} rampart_st_confir_type_t; | |
typedef enum | |
{ | |
RAMPART_ST_TYPE_UNSPECIFIED = 0, | |
RAMPART_ST_TYPE_SIGNED_SUPPORTING_TOKEN, | |
RAMPART_ST_TYPE_SIGNATURE_TOKEN, | |
RAMPART_ST_TYPE_ENCRYPTION_TOKEN, | |
RAMPART_ST_TYPE_PROTECTION_TOKEN | |
} rampart_st_type_t; | |
typedef struct rampart_saml_token_t rampart_saml_token_t; | |
/** | |
* | |
* @param env pointer to environment struct,Must not be NULL. | |
* @param assertion | |
* @param type | |
* returns | |
*/ | |
AXIS2_EXTERN rampart_saml_token_t *AXIS2_CALL | |
rampart_saml_token_create(const axutil_env_t *env, axiom_node_t *assertion, | |
rampart_st_confir_type_t type); | |
/** | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* returns | |
*/ | |
AXIS2_EXTERN int AXIS2_CALL | |
rampart_saml_token_free(rampart_saml_token_t *tok, const axutil_env_t *env); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* @param assertion | |
* returns | |
*/ | |
AXIS2_EXTERN int AXIS2_CALL | |
rampart_saml_token_set_assertion(rampart_saml_token_t *tok, const axutil_env_t *env, | |
axiom_node_t *assertion); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* returns | |
*/ | |
AXIS2_EXTERN axiom_node_t* AXIS2_CALL | |
rampart_saml_token_get_assertion(rampart_saml_token_t *tok, const axutil_env_t *env); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* @param assertion | |
* returns | |
*/ | |
AXIS2_EXTERN int AXIS2_CALL | |
rampart_saml_token_set_type(rampart_saml_token_t *tok, const axutil_env_t *env, | |
rampart_st_confir_type_t type); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* returns | |
*/ | |
AXIS2_EXTERN rampart_st_confir_type_t AXIS2_CALL | |
rampart_saml_token_get_type(rampart_saml_token_t *tok, const axutil_env_t *env); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* @param key | |
* returns | |
*/ | |
AXIS2_EXTERN int AXIS2_CALL | |
rampart_saml_token_set_key_value(rampart_saml_token_t *tok, const axutil_env_t *env, | |
oxs_key_t *key); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* returns | |
*/ | |
AXIS2_EXTERN axiom_node_t * AXIS2_CALL | |
rampart_saml_token_get_str(rampart_saml_token_t *tok, const axutil_env_t *env); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* @param str | |
* returns | |
*/ | |
AXIS2_EXTERN int AXIS2_CALL | |
rampart_saml_token_set_str(rampart_saml_token_t *tok, const axutil_env_t *env, | |
axiom_node_t *str); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* @param is_token_added | |
* @returns status of the op. | |
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error | |
*/ | |
AXIS2_EXTERN axis2_status_t AXIS2_CALL | |
rampart_saml_token_set_is_added_to_header(rampart_saml_token_t *tok, | |
const axutil_env_t *env, | |
axis2_bool_t is_token_added); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* returns | |
*/ | |
AXIS2_EXTERN axis2_bool_t AXIS2_CALL | |
rampart_saml_token_is_added_to_header(rampart_saml_token_t *tok, | |
const axutil_env_t *env); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* @param token_type | |
* @returns status of the op. | |
* AXIS2_SUCCESS on success and AXIS2_FAILURE on error | |
*/ | |
AXIS2_EXTERN axis2_status_t AXIS2_CALL | |
rampart_saml_token_set_token_type(rampart_saml_token_t *tok, | |
const axutil_env_t *env, | |
rampart_st_type_t token_type); | |
/** | |
* | |
* @param tok | |
* @param env pointer to environment struct,Must not be NULL. | |
* returns | |
*/ | |
AXIS2_EXTERN rampart_st_type_t AXIS2_CALL | |
rampart_saml_token_get_token_type(rampart_saml_token_t *tok, | |
const axutil_env_t *env); | |
AXIS2_EXTERN axis2_status_t AXIS2_CALL | |
rampart_saml_token_set_session_key(rampart_saml_token_t *tok, | |
const axutil_env_t *env, | |
oxs_key_t *key); | |
AXIS2_EXTERN oxs_key_t * AXIS2_CALL | |
rampart_saml_token_get_session_key(rampart_saml_token_t *tok, | |
const axutil_env_t *env); | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |