looks like it might work

This commit is contained in:
fpeters 2004-09-08 15:09:27 +00:00
parent df85d2c003
commit 654c584b58
4 changed files with 16 additions and 6 deletions

View File

@ -189,13 +189,16 @@ int db_save_name_identifier(char *name_identifier, char *user_id)
return 0;
}
int db_save_assertion(char *assertion_artifact, char *response_dump)
int db_save_assertion(char *assertion_artifact, LassoAssertion *assertion)
{
PGresult *res;
const char *params[2];
char *assertion_dump;
assertion_dump = lasso_node_export(LASSO_NODE(assertion));
params[0] = assertion_artifact;
params[1] = response_dump;
params[1] = assertion_dump;
res = PQexecParams(sqlconn,
"INSERT INTO assertions VALUES ($1, $2)",

View File

@ -55,7 +55,7 @@ int db_get_dumps(char *user_id, char **user_dump, char **session_dump);
int db_save_identity(char *user_id, char *identity_dump);
int db_save_session(char *user_id, char *session_dump);
int db_save_name_identifier(char *name_identifier, char *user_id);
int db_save_assertion(char *assertion_artifact, char *response_dump);
int db_save_assertion(char *assertion_artifact, LassoAssertion *assertion);
int db_get_response_dump(char *assertion, char **response_dump);
int db_remove_response_dump(char *assertion);
int db_get_user_id(char *name_identifier, char **user_id);

View File

@ -305,9 +305,10 @@ int single_sign_on()
if (login->protocolProfile == lassoLoginProtocolProfileBrwsArt) {
rc = db_save_assertion(
login->assertionArtifact,
login->response_dump);
LassoAssertion *my_ass;
/* won't be freed; missing lasso_assertion_destroy */
my_ass = lasso_login_get_assertion(login);
rc = db_save_assertion(login->assertionArtifact, my_ass);
if (rc) {
lasso_login_destroy(login);
lasso_server_destroy(server);

View File

@ -66,6 +66,12 @@ char* req_login(LassoServer *server, char *soap_msg)
lasso_login_destroy(login);
return NULL;
}
rc = lasso_login_set_assertion_from_dump(login, response_dump);
if (rc) {
fprintf(stderr, "set_assertion_from_dump failed\n");
lasso_login_destroy(login);
return NULL;
}
rc = db_remove_response_dump(login->assertionArtifact);
if (rc) {
fprintf(stderr, "db_remove_response_dump failed\n");