blob: 440bf414573757eb3d26359a2669474b99b9d95c [file] [log] [blame]
/*
* 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 TRUST_TOKEN_H
#define TRUST_TOKEN_H
/**
* @file trust_token.h
* @brief Holds function declarations and data for token
*/
#include <axiom.h>
#include <axutil_utils.h>
#include <trust_constants.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Security token states. */
typedef enum {
ISSUED = 1,
EXPIRED,
CANCELED,
RENEWED
}trust_token_state_t;
typedef struct trust_token trust_token_t;
/**
*Create trust token with given id, token node and life element data
*@param env const pointer to axutil environment
*@param id Token identifier
*@param toke_node Actual token axiom node
*@param life_node Life axiom node containing created and expire dates
*@returns pointer to trust_token_t
*/
AXIS2_EXTERN trust_token_t* AXIS2_CALL
trust_token_create(
const axutil_env_t *env,
axis2_char_t *id,
axiom_node_t *token_node,
axiom_node_t *life_node);
/**
*Create trust token with given id, token node, created date and expire date
*@param env const pointer to axutil environment
*@param id Token identifier
*@param toke_node Actual token axiom node
*@param created Date which token is created
*@param expire Date which token will expire
*@returns pointer to trust_token_t
*/
AXIS2_EXTERN trust_token_t* AXIS2_CALL
trust_token_create_with_dates(
const axutil_env_t *env,
axis2_char_t *id,
axiom_node_t *token_node,
axutil_date_time_t *created,
axutil_date_time_t *expire);
/**
*Process the life element of the token which represent by the following xml format
*assign values to related fields.
*<wst:LifeTime>
* <wsu:Created>...</wsu:Created>
* <wsu:Expires>...</wsu:Expires>
*</wst:LifeTime>
*@param env const pointer to axutil environment
*@param life_node Axiom node containing created and expire dates
*@param token Trust token containing token data
*@returns status of the life element processing
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_process_life_elem(
const axutil_env_t *env,
axiom_node_t *life_node,
trust_token_t *token);
/**
*Get the change status of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns axis2_bool_t whether the token is changed or not
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
trust_token_is_changed(
const axutil_env_t *env,
trust_token_t *token);
/**
*Set the change status of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@param changed Bollean value representing the if token is changed
*@returns axis2_status_t whether the operation is successful or not
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_set_changed(
const axutil_env_t *env,
trust_token_t *token,
axis2_bool_t changed);
/**
*Get the state of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns trust_token_state_t token's state can be ISSUED, EXPIRED, CANCELLED, RENEWED
*/
AXIS2_EXTERN trust_token_state_t AXIS2_CALL
trust_token_get_state(
const axutil_env_t *env,
trust_token_t *token);
/**
*Set the state of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@param state State of the trust token
*@returns axis2_status_t whether the set operation is successful or not
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_set_state(
const axutil_env_t *env,
trust_token_t *token,
trust_token_state_t state);
/**
*Get the actual token om node of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns axiom_node_t axiom node pointer for token
*/
AXIS2_EXTERN axiom_node_t* AXIS2_CALL
trust_token_get_token(
const axutil_env_t *env,
trust_token_t *token);
/**
*Set the actual token om node of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@param token_node axiom node pointer for token
*@returns axis2_status_t whether the set operation is successful or not
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_set_token(
const axutil_env_t *env,
trust_token_t *token,
axiom_node_t *token_node);
/**
*Get the identifier of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns axis2_char_t identifier string of token
*/
AXIS2_EXTERN axis2_char_t* AXIS2_CALL
trust_token_get_id(
const axutil_env_t *env,
trust_token_t *token);
/**
*Get the actual previous token om node of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns axiom_node_t axiom node pointer for previous token
*/
AXIS2_EXTERN axiom_node_t* AXIS2_CALL
trust_token_get_previous_token(
const axutil_env_t *env,
trust_token_t *token);
/**
*Set the actual token om node of trust token's previous token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@param prev_token axiom node pointer for previous token
*@returns axis2_status_t whether the set operation is successful or not
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_set_previous_token(
const axutil_env_t *env,
trust_token_t *token,
axiom_node_t *prev_token);
/* **
* @return Returns the secret.
public byte[] getSecret() {
return secret;
} */
/**
* @param secret The secret to set.
public void setSecret(byte[] secret) {
this.secret = secret;
}*/
/**
*Get the attached reference of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns axiom_node_t axiom node pointer for attached reference
*/
AXIS2_EXTERN axiom_node_t* AXIS2_CALL
trust_token_get_attached_reference(
const axutil_env_t *env,
trust_token_t *token);
/**
*Set the attached reference of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@param attached_reference axiom node pointer for attached reference
*@returns axis2_status_t whether the set operation is successful or not
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_set_attached_reference(
const axutil_env_t *env,
trust_token_t *token,
axiom_node_t *attached_reference);
/**
*Get the unattached reference of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns axiom_node_t axiom node pointer for unattached reference
*/
AXIS2_EXTERN axiom_node_t* AXIS2_CALL
trust_token_get_unattached_reference(
const axutil_env_t *env,
trust_token_t *token);
/**
*Set the unattached reference of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@param attached_reference axiom node pointer for unattached reference
*@returns axis2_status_t whether the set operation is successful or not
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_set_unattached_reference(
const axutil_env_t *env,
trust_token_t *token,
axiom_node_t *unattached_reference);
/**
*Get the created date of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns axutil_date_time_t ceated date
*/
AXIS2_EXTERN axutil_date_time_t* AXIS2_CALL
trust_token_get_created(
const axutil_env_t *env,
trust_token_t *token);
/**
*Set the created date of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@param created date which token is created
*@returns axis2_status_t whether the set operation is successful or not
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_set_created(
const axutil_env_t *env,
trust_token_t *token,
axutil_date_time_t *created);
/**
*Get the expire date of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns axutil_date_time_t expire date
*/
AXIS2_EXTERN axutil_date_time_t* AXIS2_CALL
trust_token_get_expires(
const axutil_env_t *env,
trust_token_t *token);
/**
*Set the expire date of trust token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@param expire Expire date of token
*@returns axis2_status_t whether the set operation is successful or not
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_set_expires(
const axutil_env_t *env,
trust_token_t *token,
axutil_date_time_t *expire);
/**
*Get the issuer's address of token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@returns axis2_char_t* issuer's address
*/
AXIS2_EXTERN axis2_char_t* AXIS2_CALL
trust_token_get_issuer_address(
const axutil_env_t *env,
trust_token_t *token);
/**
*Set the issuer's address of token
*@param env const pointer to axutil environment
*@param token Trust token structure
*@param issuer_address issure's address string
*@returns axis2_status_t whether the set operation is successful or not
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_set_issuer_address(
const axutil_env_t *env,
trust_token_t *token,
axis2_char_t *issuer_address);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
trust_token_process_life_elem(
const axutil_env_t *env,
axiom_node_t *life_node,
trust_token_t *token);
#ifdef __cplusplus
}
#endif
#endif /*TRUST_TOKEN_H*/