Defines | Functions | Variables

wsseapi-lite.c File Reference

#include "wsseapi-lite.h"
Include dependency graph for wsseapi-lite.c:

Defines

#define SOAP_WSSE_CLKSKEW   (300)

Functions

struct _wsse__Securitysoap_wsse_add_Security (struct soap *soap)
 Adds Security header element.
struct _wsse__Securitysoap_wsse_add_Security_actor (struct soap *soap, const char *actor)
 Adds Security header element with actor or role attribute.
void soap_wsse_delete_Security (struct soap *soap)
 Deletes Security header element.
struct _wsse__Securitysoap_wsse_Security (struct soap *soap)
 Returns Security header element if present.
int soap_wsse_add_Timestamp (struct soap *soap, const char *id, time_t lifetime)
 Adds Timestamp element with optional expiration date+time (lifetime).
struct _wsu__Timestamp * soap_wsse_Timestamp (struct soap *soap)
 Returns Timestamp element if present.
int soap_wsse_verify_Timestamp (struct soap *soap)
 Verifies the Timestamp/Expires element against the current time.
int soap_wsse_add_UsernameTokenText (struct soap *soap, const char *id, const char *username, const char *password)
 Adds UsernameToken element with optional clear-text password.
struct _wsse__UsernameTokensoap_wsse_UsernameToken (struct soap *soap, const char *id)
 Returns UsernameToken element if present.
const char * soap_wsse_get_Username (struct soap *soap)
 Returns UsernameToken/username string or wsse:FailedAuthentication fault.
int soap_wsse_verify_Password (struct soap *soap, const char *password)
 Verifies the supplied password or sets wsse:FailedAuthentication fault.
int soap_wsse_sender_fault_subcode (struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail)
 Sets sender SOAP Fault (sub)code for server fault response.
int soap_wsse_receiver_fault_subcode (struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail)
 Sets receiver SOAP Fault (sub)code for server fault response.
int soap_wsse_sender_fault (struct soap *soap, const char *faultstring, const char *faultdetail)
 Sets sender SOAP Fault for server fault response.
int soap_wsse_receiver_fault (struct soap *soap, const char *faultstring, const char *faultdetail)
 Sets receiver SOAP Fault for server fault response.
int soap_wsse_fault (struct soap *soap, wsse__FaultcodeEnum fault, const char *detail)
 Sets SOAP Fault (sub)code for server response.
int soap_wsse_set_wsu_id (struct soap *soap, const char *tags)
 Sets the elements that are to be extended with wsu:Id attributes. The wsu:Id attribute values are set to the string value of the tag's QName by replacing colons with hyphens to produce an xsd:ID value.

Variables

const char * wsse_PasswordTextURI = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"

Define Documentation

#define SOAP_WSSE_CLKSKEW   (300)

Clock skew between machines (in sec) to fit message expiration in window


Function Documentation

struct _wsse__Security* soap_wsse_add_Security ( struct soap *  soap  )  [read]

Adds Security header element.

Parameters:
soap context
Returns:
_wsse__Security object
struct _wsse__Security* soap_wsse_add_Security_actor ( struct soap *  soap,
const char *  actor 
) [read]

Adds Security header element with actor or role attribute.

Parameters:
soap context
actor string
Returns:
_wsse__Security object
int soap_wsse_add_Timestamp ( struct soap *  soap,
const char *  id,
time_t  lifetime 
)

Adds Timestamp element with optional expiration date+time (lifetime).

Parameters:
[in] soap context
[in] id for signature referencing or NULL
[in] lifetime expressed in time_t units, or 0 for no expiration
Returns:
SOAP_OK
int soap_wsse_add_UsernameTokenText ( struct soap *  soap,
const char *  id,
const char *  username,
const char *  password 
)

Adds UsernameToken element with optional clear-text password.

Parameters:
soap context
[in] id string for signature referencing or NULL
[in] username string
[in] password string or NULL to omit the password
Returns:
SOAP_OK

Passwords are sent in the clear, so transport-level encryption is required.

Note:
This release supports the use of at most one UsernameToken in the header.
void soap_wsse_delete_Security ( struct soap *  soap  ) 

Deletes Security header element.

Parameters:
soap context
int soap_wsse_fault ( struct soap *  soap,
wsse__FaultcodeEnum  fault,
const char *  detail 
)

Sets SOAP Fault (sub)code for server response.

Parameters:
soap context
[in] fault is one of wsse:FaultcodeEnum
[in] detail string with optional text message
Returns:
SOAP_FAULT
const char* soap_wsse_get_Username ( struct soap *  soap  ) 

Returns UsernameToken/username string or wsse:FailedAuthentication fault.

Parameters:
soap context
Returns:
UsernameToken/username string or NULL with wsse:FailedAuthentication fault error set
See also:
soap_wsse_verify_Password

The returned username should be used to lookup the user's password in a dictionary or database for server-side authentication with soap_wsse_verify_Password.

int soap_wsse_receiver_fault ( struct soap *  soap,
const char *  faultstring,
const char *  faultdetail 
)

Sets receiver SOAP Fault for server fault response.

Parameters:
soap context
[in] faultstring fault string
[in] faultdetail detail string
Returns:
SOAP_FAULT
int soap_wsse_receiver_fault_subcode ( struct soap *  soap,
const char *  faultsubcode,
const char *  faultstring,
const char *  faultdetail 
)

Sets receiver SOAP Fault (sub)code for server fault response.

Parameters:
soap context
[in] faultsubcode sub code string
[in] faultstring fault string
[in] faultdetail detail string
Returns:
SOAP_FAULT
struct _wsse__Security* soap_wsse_Security ( struct soap *  soap  )  [read]

Returns Security header element if present.

Parameters:
soap context
Returns:
_wsse__Security object or NULL
int soap_wsse_sender_fault ( struct soap *  soap,
const char *  faultstring,
const char *  faultdetail 
)

Sets sender SOAP Fault for server fault response.

Parameters:
soap context
[in] faultstring fault string
[in] faultdetail detail string
Returns:
SOAP_FAULT
int soap_wsse_sender_fault_subcode ( struct soap *  soap,
const char *  faultsubcode,
const char *  faultstring,
const char *  faultdetail 
)

Sets sender SOAP Fault (sub)code for server fault response.

Parameters:
soap context
[in] faultsubcode sub code string
[in] faultstring fault string
[in] faultdetail detail string
Returns:
SOAP_FAULT
int soap_wsse_set_wsu_id ( struct soap *  soap,
const char *  tags 
)

Sets the elements that are to be extended with wsu:Id attributes. The wsu:Id attribute values are set to the string value of the tag's QName by replacing colons with hyphens to produce an xsd:ID value.

Parameters:
soap context
[in] tags string of space-separated qualified and unqualified element tag names
Returns:
SOAP_OK
struct _wsu__Timestamp* soap_wsse_Timestamp ( struct soap *  soap  )  [read]

Returns Timestamp element if present.

Parameters:
soap context
Returns:
_wsu__Timestamp object or NULL
struct _wsse__UsernameToken* soap_wsse_UsernameToken ( struct soap *  soap,
const char *  id 
) [read]

Returns UsernameToken element if present.

Parameters:
soap context
[in] id string of UsernameToken or NULL
Returns:
_wsse__UsernameToken object or NULL
Note:
This release supports the use of at most one UsernameToken in the header.
int soap_wsse_verify_Password ( struct soap *  soap,
const char *  password 
)

Verifies the supplied password or sets wsse:FailedAuthentication fault.

Parameters:
soap context
[in] password string to verify against
Returns:
SOAP_OK (authorized) or SOAP_FAULT with wsse:FailedAuthentication fault

The verification supports both clear-text password verification only.

Note:
This release supports the use of at most one UsernameToken in the header.
int soap_wsse_verify_Timestamp ( struct soap *  soap  ) 

Verifies the Timestamp/Expires element against the current time.

Parameters:
soap context
Returns:
SOAP_OK or SOAP_FAULT with wsu:MessageExpired fault

Sets wsu:MessageExpired fault if wsu:Timestamp is expired. The SOAP_WSSE_CLKSKEW value is used as a margin to mitigate clock skew. Keeps silent when no timestamp is supplied or no expiration date is included in the wsu:Timestamp element.


Variable Documentation

const char* wsse_PasswordTextURI = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"