lasso/Makefile.am
This commit is contained in:
parent
3374f800eb
commit
80960808a8
|
@ -1,162 +1,169 @@
|
|||
#include <lasso/protocols/register_name_identifier.h>
|
||||
|
||||
LassoNode *lasso_build_full_registerNameIdentifierRequest(const xmlChar *requestID,
|
||||
const xmlChar *majorVersion,
|
||||
const xmlChar *minorVersion,
|
||||
const xmlChar *issueInstant,
|
||||
const xmlChar *providerID,
|
||||
LassoNode *idpProvidedNameIdentifer,
|
||||
LassoNode *spProvidedNameIdentifier,
|
||||
LassoNode *oldProvidedNameIdentifier,
|
||||
const xmlChar *relayState)
|
||||
LassoNode *
|
||||
lasso_build_full_registerNameIdentifierRequest(const xmlChar *requestID,
|
||||
const xmlChar *majorVersion,
|
||||
const xmlChar *minorVersion,
|
||||
const xmlChar *issueInstant,
|
||||
const xmlChar *providerID,
|
||||
LassoNode *idpProvidedNameIdentifer,
|
||||
LassoNode *spProvidedNameIdentifier,
|
||||
LassoNode *oldProvidedNameIdentifier,
|
||||
const xmlChar *relayState)
|
||||
{
|
||||
LassoNode *request;
|
||||
LassoNode *request;
|
||||
|
||||
request = lasso_lib_register_name_identifier_request_new();
|
||||
|
||||
if (requestID != NULL) {
|
||||
lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
requestID);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
}
|
||||
|
||||
if (majorVersion != NULL) {
|
||||
lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
majorVersion);
|
||||
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lassoLibMajorVersion);
|
||||
}
|
||||
|
||||
if (minorVersion != NULL){
|
||||
lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
minorVersion);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lassoLibMinorVersion);
|
||||
}
|
||||
|
||||
if (issueInstant != NULL){
|
||||
lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
issueInstant);
|
||||
}
|
||||
else{
|
||||
lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lasso_get_current_time());
|
||||
}
|
||||
|
||||
lasso_lib_register_name_identifier_request_set_providerID(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request),
|
||||
providerID);
|
||||
|
||||
lasso_lib_register_name_identifier_request_set_idp_provided_name_identifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request),
|
||||
idpProvidedNameIdentifer);
|
||||
|
||||
lasso_lib_register_name_identifier_request_set_sp_provided_name_identifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request),
|
||||
spProvidedNameIdentifier);
|
||||
|
||||
lasso_lib_register_name_identifier_request_set_old_provided_name_identifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request),
|
||||
oldProvidedNameIdentifier);
|
||||
|
||||
request = lasso_lib_register_name_identifier_request_new();
|
||||
|
||||
if(requestID!=NULL){
|
||||
lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
requestID);
|
||||
}
|
||||
else{
|
||||
lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
}
|
||||
|
||||
if(majorVersion!=NULL){
|
||||
lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
majorVersion);
|
||||
|
||||
}
|
||||
else{
|
||||
lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lassoLibMajorVersion);
|
||||
}
|
||||
|
||||
if(minorVersion!=NULL){
|
||||
lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
minorVersion);
|
||||
}
|
||||
else{
|
||||
lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lassoLibMinorVersion);
|
||||
}
|
||||
|
||||
if(issueInstant!=NULL){
|
||||
lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
issueInstant);
|
||||
}
|
||||
else{
|
||||
lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lasso_get_current_time());
|
||||
}
|
||||
|
||||
lasso_lib_register_name_identifier_request_set_providerID(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request), providerID);
|
||||
|
||||
lasso_lib_register_name_identifier_request_set_idp_provided_name_identifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request), idpProvidedNameIdentifer);
|
||||
|
||||
lasso_lib_register_name_identifier_request_set_sp_provided_name_identifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request), spProvidedNameIdentifier);
|
||||
|
||||
lasso_lib_register_name_identifier_request_set_old_provided_name_identifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request), oldProvidedNameIdentifier);
|
||||
|
||||
if(relayState){
|
||||
lasso_lib_register_name_identifier_request_set_relayState(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request), relayState);
|
||||
}
|
||||
|
||||
return(request);
|
||||
|
||||
}
|
||||
|
||||
LassoNode *lasso_build_registerNameIdentifierRequest(const xmlChar *providerID,
|
||||
LassoNode *idpProvidedNameIdentifer,
|
||||
LassoNode *spProvidedNameIdentifier,
|
||||
LassoNode *oldProvidedNameIdentifier,
|
||||
const xmlChar *relayState)
|
||||
{
|
||||
LassoNode *request;
|
||||
|
||||
request = lasso_build_full_registerNameIdentifierRequest(NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
providerID,
|
||||
idpProvidedNameIdentifer,
|
||||
spProvidedNameIdentifier,
|
||||
oldProvidedNameIdentifier,
|
||||
if (relayState != NULL) {
|
||||
lasso_lib_register_name_identifier_request_set_relayState(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request),
|
||||
relayState);
|
||||
return(request);
|
||||
}
|
||||
|
||||
return (request);
|
||||
}
|
||||
|
||||
LassoNode *lasso_build_full_registerNameIdentifierResponse(const xmlChar *responseID,
|
||||
const xmlChar *majorVersion,
|
||||
const xmlChar *minorVersion,
|
||||
const xmlChar *issueInstant,
|
||||
const xmlChar *inResponseTo,
|
||||
const xmlChar *recipient,
|
||||
const xmlChar *providerID,
|
||||
const xmlChar *statusCodeValue,
|
||||
const xmlChar *relayState)
|
||||
LassoNode *
|
||||
lasso_build_registerNameIdentifierRequest(const xmlChar *providerID,
|
||||
LassoNode *idpProvidedNameIdentifer,
|
||||
LassoNode *spProvidedNameIdentifier,
|
||||
LassoNode *oldProvidedNameIdentifier,
|
||||
const xmlChar *relayState)
|
||||
{
|
||||
LassoNode *response, *ss, *ssc;
|
||||
LassoNode *request;
|
||||
|
||||
response = lasso_lib_register_name_identifier_response_new();
|
||||
request = lasso_build_full_registerNameIdentifierRequest(NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
providerID,
|
||||
idpProvidedNameIdentifer,
|
||||
spProvidedNameIdentifier,
|
||||
oldProvidedNameIdentifier,
|
||||
relayState);
|
||||
return (request);
|
||||
}
|
||||
|
||||
if(responseID!=NULL){
|
||||
lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
responseID);
|
||||
}
|
||||
else{
|
||||
lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
}
|
||||
|
||||
if(majorVersion!=NULL){
|
||||
lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
majorVersion);
|
||||
}
|
||||
else{
|
||||
lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoLibMajorVersion);
|
||||
}
|
||||
|
||||
if(minorVersion!=NULL){
|
||||
lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
minorVersion);
|
||||
}
|
||||
else{
|
||||
lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoLibMinorVersion);
|
||||
}
|
||||
|
||||
if(issueInstant!=NULL){
|
||||
lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
issueInstant);
|
||||
}
|
||||
else{
|
||||
lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lasso_get_current_time());
|
||||
}
|
||||
|
||||
lasso_samlp_response_abstract_set_inResponseTo(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
inResponseTo);
|
||||
|
||||
lasso_samlp_response_abstract_set_recipient(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
recipient);
|
||||
|
||||
lasso_lib_status_response_set_providerID(LASSO_LIB_STATUS_RESPONSE(response),
|
||||
providerID);
|
||||
|
||||
ss = lasso_samlp_status_new();
|
||||
ssc = lasso_samlp_status_code_new();
|
||||
lasso_samlp_status_code_set_value(LASSO_SAMLP_STATUS_CODE(ssc), statusCodeValue);
|
||||
lasso_samlp_status_set_statusCode(LASSO_SAMLP_STATUS(ss), LASSO_SAMLP_STATUS_CODE(ssc));
|
||||
lasso_samlp_response_set_status(LASSO_SAMLP_RESPONSE(response), LASSO_SAMLP_STATUS(ss));
|
||||
|
||||
if(relayState){
|
||||
lasso_lib_status_response_set_relayState(LASSO_LIB_STATUS_RESPONSE(response), relayState);
|
||||
}
|
||||
|
||||
return(response);
|
||||
LassoNode *
|
||||
lasso_build_full_registerNameIdentifierResponse(const xmlChar *responseID,
|
||||
const xmlChar *majorVersion,
|
||||
const xmlChar *minorVersion,
|
||||
const xmlChar *issueInstant,
|
||||
const xmlChar *inResponseTo,
|
||||
const xmlChar *recipient,
|
||||
const xmlChar *providerID,
|
||||
const xmlChar *statusCodeValue,
|
||||
const xmlChar *relayState)
|
||||
{
|
||||
LassoNode *response, *ss, *ssc;
|
||||
|
||||
response = lasso_lib_register_name_identifier_response_new();
|
||||
|
||||
if (responseID != NULL) {
|
||||
lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
responseID);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
}
|
||||
|
||||
if (majorVersion != NULL) {
|
||||
lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
majorVersion);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoLibMajorVersion);
|
||||
}
|
||||
|
||||
if (minorVersion != NULL) {
|
||||
lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
minorVersion);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoLibMinorVersion);
|
||||
}
|
||||
|
||||
if (issueInstant != NULL) {
|
||||
lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
issueInstant);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lasso_get_current_time());
|
||||
}
|
||||
|
||||
lasso_samlp_response_abstract_set_inResponseTo(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
inResponseTo);
|
||||
|
||||
lasso_samlp_response_abstract_set_recipient(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
recipient);
|
||||
|
||||
lasso_lib_status_response_set_providerID(LASSO_LIB_STATUS_RESPONSE(response),
|
||||
providerID);
|
||||
|
||||
ss = lasso_samlp_status_new();
|
||||
ssc = lasso_samlp_status_code_new();
|
||||
lasso_samlp_status_code_set_value(LASSO_SAMLP_STATUS_CODE(ssc), statusCodeValue);
|
||||
lasso_samlp_status_set_statusCode(LASSO_SAMLP_STATUS(ss), LASSO_SAMLP_STATUS_CODE(ssc));
|
||||
lasso_samlp_response_set_status(LASSO_SAMLP_RESPONSE(response), LASSO_SAMLP_STATUS(ss));
|
||||
|
||||
if (relayState != NULL) {
|
||||
lasso_lib_status_response_set_relayState(LASSO_LIB_STATUS_RESPONSE(response), relayState);
|
||||
}
|
||||
|
||||
return (response);
|
||||
}
|
||||
|
||||
LassoNode *lasso_build_registerNameIdentifierResponse(LassoNode *request,
|
||||
|
|
|
@ -1,5 +1,34 @@
|
|||
#ifndef __REGISTER_NAME_IDENTIFIER_H__
|
||||
#define __REGISTER_NAME_IDENTIFIER_H__
|
||||
/* $Id$
|
||||
*
|
||||
* Lasso - A free implementation of the Liberty Alliance specifications.
|
||||
*
|
||||
* Copyright (C) 2004 Entr'ouvert
|
||||
* http://lasso.entrouvert.org
|
||||
*
|
||||
* Authors: Valery Febvre <vfebvre@easter-eggs.com>
|
||||
* Nicolas Clapies <nclapies@entrouvert.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __LASSO_REGISTER_NAME_IDENTIFIER_H__
|
||||
#define __LASSO_REGISTER_NAME_IDENTIFIER_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#include <lasso/lasso.h>
|
||||
|
||||
|
@ -34,4 +63,8 @@ LassoNode *lasso_build_registerNameIdentifierResponse(LassoNode *request,
|
|||
const xmlChar *statusCodeValue,
|
||||
const xmlChar *relayState);
|
||||
|
||||
#endif /* __REGISTER_NAME_IDENTIFIER_H__ */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __LASSO_REGISTER_NAME_IDENTIFIER_H__ */
|
||||
|
|
|
@ -25,93 +25,240 @@
|
|||
|
||||
#include <lasso/protocols/single_sign_on_and_federation.h>
|
||||
|
||||
LassoNode *lasso_build_authnRequest_must_autenthicate(gboolean verifySignature,
|
||||
const xmlChar *query,
|
||||
const xmlChar *rsapub,
|
||||
const xmlChar *rsakey,
|
||||
gboolean isAuthenticated,
|
||||
gboolean isPassive,
|
||||
gboolean mustAuthenticate,
|
||||
GPtrArray *authenticationMethods,
|
||||
xmlChar *authnContextComparison)
|
||||
static LassoNode *
|
||||
lasso_build_full_authnRequest(const xmlChar *requestID,
|
||||
const xmlChar *majorVersion,
|
||||
const xmlChar *minorVersion,
|
||||
const xmlChar *issueInstant,
|
||||
const xmlChar *providerID,
|
||||
const xmlChar *nameIDPolicy,
|
||||
const xmlChar *forceAuthn,
|
||||
const xmlChar *isPassive,
|
||||
const xmlChar *protocolProfile,
|
||||
const xmlChar *assertionConsumerServiceID,
|
||||
GPtrArray *authnContextClassRefs,
|
||||
GPtrArray *authnContextStatementRefs,
|
||||
const xmlChar *authnContextComparison,
|
||||
const xmlChar *relayState,
|
||||
gint proxyCount,
|
||||
GPtrArray *idpList,
|
||||
const xmlChar *consent)
|
||||
{
|
||||
LassoNode *req;
|
||||
GData *gd;
|
||||
int result;
|
||||
gboolean forceAuthn;
|
||||
|
||||
LassoNode *request, *authn_context, *scoping;
|
||||
gint i;
|
||||
|
||||
if(verifySignature==TRUE){
|
||||
result = lasso_str_verify(query, rsapub, rsakey);
|
||||
if(result==-1){
|
||||
return(NULL);
|
||||
}
|
||||
}
|
||||
/* create a new AuthnRequestinstance */
|
||||
request = lasso_lib_authn_request_new();
|
||||
/* RequestID */
|
||||
if (requestID != NULL) {
|
||||
lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
requestID);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
}
|
||||
|
||||
gd = lasso_query_to_dict(query);
|
||||
if(gd!=NULL){
|
||||
req = lasso_build_full_authnRequest(lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RequestID"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MajorVersion"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MinorVersion"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IssueInstance"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameIDPolicy"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ForceAuthn"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IsPassive"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd,
|
||||
"AssertionConsumerServiceID"),
|
||||
0),
|
||||
NULL, // AuthnContextClassRef
|
||||
NULL, // AuthnContextStatementRef
|
||||
NULL, // AuthnContextComparison
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RelayState"), 0),
|
||||
NULL, // ProxyCount
|
||||
NULL, // IDPList
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "consent"), 0));
|
||||
/* MajorVersion */
|
||||
if (majorVersion != NULL) {
|
||||
lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
majorVersion);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lassoLibMajorVersion);
|
||||
}
|
||||
|
||||
g_datalist_clear(&gd);
|
||||
}
|
||||
/* MinorVersion */
|
||||
if (minorVersion != NULL) {
|
||||
lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
minorVersion);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lassoLibMinorVersion);
|
||||
}
|
||||
|
||||
if(req==NULL){
|
||||
return(NULL);
|
||||
}
|
||||
/* IssueInstant */
|
||||
if (issueInstant != NULL) {
|
||||
lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
issueInstant);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lasso_get_current_time());
|
||||
}
|
||||
|
||||
if(g_strcmp("true", lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IsPassive"), 0))){
|
||||
isPassive = TRUE;
|
||||
}
|
||||
else{
|
||||
isPassive = FALSE;
|
||||
}
|
||||
/* ProviderID */
|
||||
lasso_lib_authn_request_set_providerID(LASSO_LIB_AUTHN_REQUEST(request),
|
||||
providerID);
|
||||
|
||||
if(g_strcmp("true", lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ForceAuthn"), 0))){
|
||||
forceAuthn = TRUE;
|
||||
}
|
||||
else{
|
||||
forceAuthn= FALSE;
|
||||
}
|
||||
/* NameIDPolicy */
|
||||
if (nameIDPolicy != NULL) {
|
||||
lasso_lib_authn_request_set_nameIDPolicy(LASSO_LIB_AUTHN_REQUEST(request), nameIDPolicy);
|
||||
}
|
||||
|
||||
/* ForceAuthn */
|
||||
if (forceAuthn != NULL) {
|
||||
lasso_lib_authn_request_set_forceAuthn(LASSO_LIB_AUTHN_REQUEST(request), forceAuthn);
|
||||
}
|
||||
|
||||
/* IsPassive */
|
||||
if (isPassive != NULL) {
|
||||
lasso_lib_authn_request_set_isPassive(LASSO_LIB_AUTHN_REQUEST(request), isPassive);
|
||||
}
|
||||
|
||||
if((forceAuthn=TRUE)||(isAuthenticated)){
|
||||
mustAuthenticate = TRUE;
|
||||
}
|
||||
/* ProtocolProfile */
|
||||
if (protocolProfile != NULL) {
|
||||
lasso_lib_authn_request_set_protocolProfile(LASSO_LIB_AUTHN_REQUEST(request), protocolProfile);
|
||||
}
|
||||
|
||||
/* AssertionConsumerServiceID */
|
||||
if (assertionConsumerServiceID != NULL) {
|
||||
lasso_lib_authn_request_set_assertionConsumerServiceID(LASSO_LIB_AUTHN_REQUEST(request),
|
||||
assertionConsumerServiceID);
|
||||
}
|
||||
|
||||
mustAuthenticate = FALSE;
|
||||
/* AuthnContext */
|
||||
if (authnContextClassRefs != NULL || authnContextStatementRefs != NULL) {
|
||||
/* create a new AuthnContext instance */
|
||||
authn_context = lasso_lib_request_authn_context_new();
|
||||
/* AuthnContextClassRefs */
|
||||
if (authnContextClassRefs != NULL) {
|
||||
for(i=0; i<authnContextClassRefs->len; i++) {
|
||||
lasso_lib_request_authn_context_add_authnContextClassRef(LASSO_LIB_REQUEST_AUTHN_CONTEXT(authn_context),
|
||||
lasso_g_ptr_array_index(authnContextClassRefs, i));
|
||||
}
|
||||
}
|
||||
/* AuthnContextStatementRefs */
|
||||
for(i=0; i<authnContextStatementRefs->len; i++) {
|
||||
lasso_lib_request_authn_context_add_authnContextStatementRef(LASSO_LIB_REQUEST_AUTHN_CONTEXT(authn_context),
|
||||
lasso_g_ptr_array_index(authnContextStatementRefs, i));
|
||||
}
|
||||
/* AuthnContextComparison */
|
||||
if (authnContextComparison != NULL) {
|
||||
lasso_lib_request_authn_context_set_authnContextComparison(LASSO_LIB_REQUEST_AUTHN_CONTEXT(authn_context),
|
||||
authnContextComparison);
|
||||
}
|
||||
/* Add AuthnContext to AuthnRequest */
|
||||
lasso_lib_authn_request_set_requestAuthnContext(LASSO_LIB_AUTHN_REQUEST(request),
|
||||
LASSO_LIB_REQUEST_AUTHN_CONTEXT(authn_context));
|
||||
}
|
||||
|
||||
return(req);
|
||||
/* RelayState */
|
||||
if (relayState != NULL) {
|
||||
lasso_lib_authn_request_set_relayState(LASSO_LIB_AUTHN_REQUEST(request), relayState);
|
||||
}
|
||||
|
||||
/* Scoping */
|
||||
if (proxyCount > 0) {
|
||||
/* create a new Scoping instance */
|
||||
scoping = lasso_lib_scoping_new();
|
||||
/* ProxyCount */
|
||||
lasso_lib_scoping_set_proxyCount(LASSO_LIB_SCOPING(scoping), proxyCount);
|
||||
lasso_lib_authn_request_set_scoping(LASSO_LIB_AUTHN_REQUEST(request),
|
||||
LASSO_LIB_SCOPING(scoping));
|
||||
}
|
||||
|
||||
/* consent */
|
||||
if (consent != NULL) {
|
||||
lasso_lib_authn_request_set_consent(LASSO_LIB_AUTHN_REQUEST(request), consent);
|
||||
}
|
||||
|
||||
return (request);
|
||||
}
|
||||
|
||||
LassoNode *lasso_build_authnRequest(const xmlChar *providerID,
|
||||
const xmlChar *nameIDPolicy,
|
||||
const xmlChar *forceAuthn,
|
||||
const xmlChar *isPassive,
|
||||
const xmlChar *protocolProfile,
|
||||
const xmlChar *assertionConsumerServiceID,
|
||||
const xmlChar **authnContextClassRefs,
|
||||
const xmlChar **authnContextStatementRefs,
|
||||
const xmlChar *authnContextComparison,
|
||||
const xmlChar *relayState,
|
||||
const xmlChar *proxyCount,
|
||||
const xmlChar **idpList,
|
||||
const xmlChar *consent)
|
||||
LassoNode *
|
||||
lasso_build_authnRequest_must_autenthicate(gboolean verifySignature,
|
||||
xmlChar *query,
|
||||
const xmlChar *rsapub,
|
||||
const xmlChar *rsakey,
|
||||
gboolean isAuthenticated,
|
||||
gboolean *isPassive,
|
||||
gboolean *mustAuthenticate,
|
||||
GPtrArray *authenticationMethods,
|
||||
xmlChar *authnContextComparison)
|
||||
{
|
||||
LassoNode *req;
|
||||
GData *gd;
|
||||
gboolean forceAuthn = FALSE;
|
||||
gint proxyCount = 0;
|
||||
|
||||
if (verifySignature == TRUE){
|
||||
if (lasso_str_verify(query, rsapub, rsakey) != 1) {
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
|
||||
gd = lasso_query_to_dict(query);
|
||||
|
||||
if (gd != NULL) {
|
||||
/* if ProxyCount exists, convert into integer */
|
||||
if (lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProxyCount"), 0) != NULL) {
|
||||
proxyCount = atoi(lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProxyCount"), 0));
|
||||
}
|
||||
req = lasso_build_full_authnRequest(lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RequestID"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MajorVersion"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MinorVersion"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IssueInstance"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameIDPolicy"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ForceAuthn"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IsPassive"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProtocolProfile"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "AssertionConsumerServiceID"), 0),
|
||||
(GPtrArray *)g_datalist_get_data(&gd, "AuthnContextClassRef"),
|
||||
(GPtrArray *)g_datalist_get_data(&gd, "AuthnContextStatementRef"),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "AuthnContextComparison"), 0),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RelayState"), 0),
|
||||
proxyCount,
|
||||
(GPtrArray *)g_datalist_get_data(&gd, "IDPList"),
|
||||
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "consent"), 0));
|
||||
g_datalist_clear(&gd);
|
||||
}
|
||||
|
||||
lasso_node_dump(req, "iso-8859-1", 1);
|
||||
|
||||
if (req == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
if (xmlStrEqual(lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IsPassive"), 0), "true")) {
|
||||
*isPassive = TRUE;
|
||||
}
|
||||
else {
|
||||
*isPassive = FALSE;
|
||||
}
|
||||
|
||||
if (xmlStrEqual(lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ForceAuthn"), 0), "true")){
|
||||
forceAuthn = TRUE;
|
||||
}
|
||||
else {
|
||||
forceAuthn = FALSE;
|
||||
}
|
||||
|
||||
*mustAuthenticate = FALSE;
|
||||
if ((forceAuthn == TRUE) || (isAuthenticated == TRUE)) {
|
||||
*mustAuthenticate = TRUE;
|
||||
}
|
||||
|
||||
return (req);
|
||||
}
|
||||
|
||||
LassoNode *
|
||||
lasso_build_authnRequest(const xmlChar *providerID,
|
||||
const xmlChar *nameIDPolicy,
|
||||
const xmlChar *forceAuthn,
|
||||
const xmlChar *isPassive,
|
||||
const xmlChar *protocolProfile,
|
||||
const xmlChar *assertionConsumerServiceID,
|
||||
GPtrArray *authnContextClassRefs,
|
||||
GPtrArray *authnContextStatementRefs,
|
||||
const xmlChar *authnContextComparison,
|
||||
const xmlChar *relayState,
|
||||
gint proxyCount,
|
||||
GPtrArray *idpList,
|
||||
const xmlChar *consent)
|
||||
{
|
||||
return (lasso_build_full_authnRequest(NULL,
|
||||
NULL,
|
||||
|
@ -132,188 +279,99 @@ LassoNode *lasso_build_authnRequest(const xmlChar *providerID,
|
|||
consent));
|
||||
}
|
||||
|
||||
LassoNode *lasso_build_full_authnRequest(const xmlChar *requestID,
|
||||
const xmlChar *majorVersion,
|
||||
const xmlChar *minorVersion,
|
||||
const xmlChar *issueInstant,
|
||||
const xmlChar *providerID,
|
||||
const xmlChar *nameIDPolicy,
|
||||
const xmlChar *forceAuthn,
|
||||
const xmlChar *isPassive,
|
||||
const xmlChar *protocolProfile,
|
||||
const xmlChar *assertionConsumerServiceID,
|
||||
const xmlChar **authnContextClassRefs,
|
||||
const xmlChar **authnContextStatementRefs,
|
||||
const xmlChar *authnContextComparison,
|
||||
const xmlChar *relayState,
|
||||
const xmlChar *proxyCount,
|
||||
const xmlChar **idpList,
|
||||
const xmlChar *consent)
|
||||
LassoNode *
|
||||
lasso_build_full_authnResponse(LassoNode *request,
|
||||
const xmlChar *providerID)
|
||||
{
|
||||
LassoNode *request;
|
||||
LassoNode *response;
|
||||
|
||||
// build AuthnRequest class
|
||||
request = lasso_lib_authn_request_new();
|
||||
|
||||
if (requestID != NULL) {
|
||||
lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
requestID);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
response = lasso_lib_authn_response_new();
|
||||
|
||||
lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
}
|
||||
|
||||
if (majorVersion != NULL) {
|
||||
lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
majorVersion);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lassoLibMajorVersion);
|
||||
}
|
||||
|
||||
if (minorVersion != NULL) {
|
||||
lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
minorVersion);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lassoLibMinorVersion);
|
||||
}
|
||||
|
||||
if (issueInstant != NULL) {
|
||||
lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
issueInstant);
|
||||
}
|
||||
else {
|
||||
lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
|
||||
lasso_get_current_time());
|
||||
}
|
||||
|
||||
lasso_lib_authn_request_set_providerID(LASSO_LIB_AUTHN_REQUEST(request),
|
||||
providerID);
|
||||
|
||||
if(nameIDPolicy != NULL) {
|
||||
lasso_lib_authn_request_set_nameIDPolicy(LASSO_LIB_AUTHN_REQUEST(request), nameIDPolicy);
|
||||
}
|
||||
lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoLibMajorVersion);
|
||||
lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoLibMinorVersion);
|
||||
lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lasso_get_current_time());
|
||||
|
||||
if(forceAuthn != NULL) {
|
||||
lasso_lib_authn_request_set_forceAuthn(LASSO_LIB_AUTHN_REQUEST(request), forceAuthn);
|
||||
}
|
||||
lasso_lib_authn_response_set_providerID(LASSO_LIB_AUTHN_RESPONSE(response), providerID);
|
||||
|
||||
if(isPassive != NULL) {
|
||||
lasso_lib_authn_request_set_isPassive(LASSO_LIB_AUTHN_REQUEST(request), isPassive);
|
||||
}
|
||||
return(response);
|
||||
}
|
||||
|
||||
if(protocolProfile != NULL) {
|
||||
lasso_lib_authn_request_set_protocolProfile(LASSO_LIB_AUTHN_REQUEST(request), protocolProfile);
|
||||
}
|
||||
LassoNode *
|
||||
lasso_build_full_response(LassoNode *request,
|
||||
const xmlChar *providerID)
|
||||
{
|
||||
LassoNode *response;
|
||||
|
||||
response = lasso_samlp_response_new();
|
||||
|
||||
lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoSamlMajorVersion);
|
||||
lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoSamlMinorVersion);
|
||||
lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lasso_get_current_time());
|
||||
|
||||
if(assertionConsumerServiceID != NULL) {
|
||||
lasso_lib_authn_request_set_assertionConsumerServiceID(LASSO_LIB_AUTHN_REQUEST(request),
|
||||
assertionConsumerServiceID);
|
||||
}
|
||||
return (response);
|
||||
}
|
||||
|
||||
if(relayState != NULL) {
|
||||
lasso_lib_authn_request_set_relayState(LASSO_LIB_AUTHN_REQUEST(request), relayState);
|
||||
}
|
||||
LassoNode *
|
||||
lasso_build_assertion(const xmlChar *inResponseTo,
|
||||
const xmlChar *issuer)
|
||||
{
|
||||
LassoNode *assertion, *subject;
|
||||
|
||||
assertion = lasso_lib_assertion_new();
|
||||
|
||||
lasso_saml_assertion_set_assertionID(LASSO_SAML_ASSERTION(assertion),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
lasso_saml_assertion_set_majorVersion(LASSO_SAML_ASSERTION(assertion),
|
||||
lassoLibMajorVersion);
|
||||
lasso_saml_assertion_set_minorVersion(LASSO_SAML_ASSERTION(assertion),
|
||||
lassoLibMajorVersion);
|
||||
lasso_saml_assertion_set_issueInstance(LASSO_SAML_ASSERTION(assertion),
|
||||
lasso_get_current_time());
|
||||
|
||||
if(consent != NULL) {
|
||||
lasso_lib_authn_request_set_consent(LASSO_LIB_AUTHN_REQUEST(request), consent);
|
||||
}
|
||||
|
||||
return (request);
|
||||
lasso_lib_assertion_set_inResponseTo(LASSO_LIB_ASSERTION(assertion),
|
||||
inResponseTo);
|
||||
|
||||
lasso_saml_assertion_set_issuer(LASSO_SAML_ASSERTION(assertion),
|
||||
issuer);
|
||||
|
||||
return (assertion);
|
||||
}
|
||||
|
||||
|
||||
LassoNode *lasso_build_full_authnResponse(LassoNode *request,
|
||||
const xmlChar *providerID)
|
||||
LassoNode *
|
||||
lasso_build_authenticationStatement(const xmlChar *authenticationMethod,
|
||||
LassoNode *nameIdentifier,
|
||||
LassoNode *idpProvidedNameIdentifier)
|
||||
{
|
||||
LassoNode *response;
|
||||
|
||||
response = lasso_lib_authn_response_new();
|
||||
|
||||
lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoLibMajorVersion);
|
||||
lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoLibMinorVersion);
|
||||
lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lasso_get_current_time());
|
||||
|
||||
lasso_lib_authn_response_set_providerID(response, providerID);
|
||||
|
||||
return(response);
|
||||
}
|
||||
|
||||
LassoNode *lasso_build_full_response(LassoNode *request,
|
||||
const xmlChar *providerID)
|
||||
{
|
||||
LassoNode *response;
|
||||
|
||||
response = lasso_samlp_response_new();
|
||||
|
||||
lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoSamlMajorVersion);
|
||||
lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lassoSamlMinorVersion);
|
||||
lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
|
||||
lasso_get_current_time());
|
||||
|
||||
return(response);
|
||||
}
|
||||
|
||||
LassoNode *lasso_build_assertion(const xmlChar *inResponseTo,
|
||||
const xmlChar *issuer)
|
||||
{
|
||||
LassoNode *assertion, *subject;
|
||||
|
||||
assertion = lasso_lib_assertion_new();
|
||||
|
||||
lasso_saml_assertion_set_assertionID(LASSO_SAML_ASSERTION(assertion),
|
||||
(const xmlChar *)lasso_build_unique_id(32));
|
||||
lasso_saml_assertion_set_majorVersion(LASSO_SAML_ASSERTION(assertion),
|
||||
lassoLibMajorVersion);
|
||||
lasso_saml_assertion_set_minorVersion(LASSO_SAML_ASSERTION(assertion),
|
||||
lassoLibMajorVersion);
|
||||
lasso_saml_assertion_set_issueInstance(LASSO_SAML_ASSERTION(assertion),
|
||||
lasso_get_current_time());
|
||||
|
||||
lasso_lib_assertion_set_inResponseTo(LASSO_LIB_ASSERTION(assertion),
|
||||
inResponseTo);
|
||||
|
||||
lasso_saml_assertion_set_issuer(LASSO_SAML_ASSERTION(assertion),
|
||||
issuer);
|
||||
|
||||
return(assertion);
|
||||
}
|
||||
|
||||
LassoNode *lasso_build_authenticationStatement(const xmlChar *authenticationMethod,
|
||||
LassoNode *nameIdentifier,
|
||||
LassoNode *idpProvidedNameIdentifier)
|
||||
{
|
||||
LassoNode *statement, *subject;
|
||||
|
||||
statement = lasso_lib_authentication_statement_new();
|
||||
|
||||
lasso_saml_authentication_statement_set_authenticationMethod(LASSO_SAML_AUTHENTICATION_STATEMENT(statement), authenticationMethod);
|
||||
|
||||
lasso_saml_authentication_statement_set_authenticationInstant(LASSO_SAML_AUTHENTICATION_STATEMENT(statement), lasso_get_current_time());
|
||||
|
||||
subject = lasso_lib_subject_new();
|
||||
|
||||
lasso_saml_subject_set_nameIdentifier(LASSO_SAML_SUBJECT(subject),
|
||||
LASSO_SAML_NAME_IDENTIFIER(nameIdentifier));
|
||||
|
||||
lasso_lib_subject_set_idpProvidedNameIdentifier(LASSO_LIB_SUBJECT(subject),
|
||||
LASSO_LIB_IDP_PROVIDED_NAME_IDENTIFIER(idpProvidedNameIdentifier));
|
||||
|
||||
lasso_saml_subject_statement_abstract_set_subject(LASSO_SAML_SUBJECT_STATEMENT_ABSTRACT(statement),
|
||||
LASSO_SAML_SUBJECT(subject));
|
||||
|
||||
return(statement);
|
||||
LassoNode *statement, *subject;
|
||||
|
||||
statement = lasso_lib_authentication_statement_new();
|
||||
|
||||
lasso_saml_authentication_statement_set_authenticationMethod(LASSO_SAML_AUTHENTICATION_STATEMENT(statement),
|
||||
authenticationMethod);
|
||||
|
||||
lasso_saml_authentication_statement_set_authenticationInstant(LASSO_SAML_AUTHENTICATION_STATEMENT(statement),
|
||||
lasso_get_current_time());
|
||||
|
||||
subject = lasso_lib_subject_new();
|
||||
|
||||
lasso_saml_subject_set_nameIdentifier(LASSO_SAML_SUBJECT(subject),
|
||||
LASSO_SAML_NAME_IDENTIFIER(nameIdentifier));
|
||||
|
||||
lasso_lib_subject_set_idpProvidedNameIdentifier(LASSO_LIB_SUBJECT(subject),
|
||||
LASSO_LIB_IDP_PROVIDED_NAME_IDENTIFIER(idpProvidedNameIdentifier));
|
||||
|
||||
lasso_saml_subject_statement_abstract_set_subject(LASSO_SAML_SUBJECT_STATEMENT_ABSTRACT(statement),
|
||||
LASSO_SAML_SUBJECT(subject));
|
||||
|
||||
return (statement);
|
||||
}
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
* Copyright (C) 2004 Entr'ouvert
|
||||
* http://lasso.entrouvert.org
|
||||
*
|
||||
* Author: Valery Febvre <vfebvre@easter-eggs.com>
|
||||
* Authors: Valery Febvre <vfebvre@easter-eggs.com>
|
||||
* Nicolas Clapies <nclapies@entrouvert.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -32,12 +33,12 @@ extern "C" {
|
|||
#include <lasso/lasso.h>
|
||||
|
||||
LassoNode *lasso_build_authnRequest_must_autenthicate(gboolean verifySignature,
|
||||
const xmlChar *query,
|
||||
xmlChar *query,
|
||||
const xmlChar *rsapub,
|
||||
const xmlChar *rsakey,
|
||||
gboolean isAuthenticated,
|
||||
gboolean isPassive,
|
||||
gboolean mustAuthenticate,
|
||||
gboolean *isPassive,
|
||||
gboolean *mustAuthenticate,
|
||||
GPtrArray *authenticationMethods,
|
||||
xmlChar *authnContextComparison);
|
||||
|
||||
|
@ -47,12 +48,12 @@ LassoNode *lasso_build_authnRequest(const xmlChar *providerID,
|
|||
const xmlChar *isPassive,
|
||||
const xmlChar *protocolProfile,
|
||||
const xmlChar *assertionConsumerServiceID,
|
||||
const xmlChar **authnContextClassRefs,
|
||||
const xmlChar **authnContextStatementRefs,
|
||||
GPtrArray *authnContextClassRefs,
|
||||
GPtrArray *authnContextStatementRefs,
|
||||
const xmlChar *authnContextComparison,
|
||||
const xmlChar *relayState,
|
||||
const xmlChar *proxyCount,
|
||||
const xmlChar **idpList,
|
||||
gint proxyCount,
|
||||
GPtrArray *idpList,
|
||||
const xmlChar *consent);
|
||||
|
||||
LassoNode *lasso_build_full_authnResponse(LassoNode *request,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
NULL =
|
||||
SUBDIRS = schema bindings protocols
|
||||
SUBDIRS = schema protocols
|
||||
|
||||
liblassoincludedir = $(includedir)/lasso
|
||||
|
||||
|
@ -32,7 +32,6 @@ liblasso_la_SOURCES = \
|
|||
|
||||
liblasso_la_LIBADD = \
|
||||
$(top_builddir)/lasso/schema/liblasso-schema.la \
|
||||
$(top_builddir)/lasso/bindings/liblasso-bindings.la \
|
||||
$(top_builddir)/lasso/protocols/liblasso-protocols.la \
|
||||
$(GLIB_LIBS) \
|
||||
$(LIBXSLT_LIBS) \
|
||||
|
|
Loading…
Reference in New Issue