Working on CGI session stuff.

This commit is contained in:
Brad Arant 2025-12-04 17:05:57 -08:00
parent 8b38617b00
commit 7e835e5073
3 changed files with 14 additions and 14 deletions

View File

@ -6,7 +6,7 @@ namespace jet {
SessionId::SessionId() { SessionId::SessionId() {
unsigned char hashit[64]; unsigned char hashit[64];
unsigned char hash[SHA_DIGEST_LENGTH]; unsigned char hash[SHA_DIGEST_LENGTH];
setSize(64); setSize(40);
sprintf((char *)hashit, "JETSESSION%ld", time(0)); sprintf((char *)hashit, "JETSESSION%ld", time(0));
SHA1(hashit, strlen((char *)hashit), hash); SHA1(hashit, strlen((char *)hashit), hash);
sprintf(getData(), "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", sprintf(getData(), "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",

View File

@ -419,7 +419,7 @@ namespace jet {
return getenv(name.c_str()); return getenv(name.c_str());
} else if(variable.ifNext("^")) { } else if(variable.ifNext("^")) {
renderVariableName(variable, name, modifier); renderVariableName(variable, name, modifier);
return global.cookies.data[variable]; return global.cookies.data[name];
} else { } else {
renderVariableName(variable, name, modifier); renderVariableName(variable, name, modifier);
name.split("."); name.split(".");

View File

@ -2,6 +2,7 @@
#include "Exception.h" #include "Exception.h"
#include "Global.h" #include "Global.h"
#include "SessionId.h" #include "SessionId.h"
#include <stdlib.h>
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
@ -15,22 +16,21 @@ namespace jet {
if(keywordDefined("sessiondir")) { if(keywordDefined("sessiondir")) {
global.session = true; global.session = true;
global.cookies = getenv("HTTP_COOKIE"); global.cookies = getenv("HTTP_COOKIE");
if(global.cookies.data["session"] != NULL) {
// if request_has_cookie then
// pull sessionfile from sessiondir. // pull sessionfile from sessiondir.
// if last activity time is expired then ignore. // if last activity time is expired then ignore.
// follow sessiontimeoutredirecturl. // follow sessiontimeoutredirecturl.
// else } else {
SessionId sessionId; SessionId sessionId;
global.headers["Set-Cookie"] << "session=" << sessionId; global.headers["Set-Cookie"] << "session=" << sessionId;
if(keywordDefined("sessiontimeout")) { global.cookies.data["session"] = sessionId;
time_t timeout = time(0) + keywords["sessiontimeout"].asInteger(); if(keywordDefined("sessiontimeout")) {
time_t timeout = time(0) + keywords["sessiontimeout"].asInteger();
}
// also save last activity time in session file.
} }
// also save last activity time in session file.
} }
coreutils::ZString requestMethod(getenv("REQUEST_METHOD")); coreutils::ZString requestMethod(getenv("REQUEST_METHOD"));
if(requestMethod == "POST") { if(requestMethod == "POST") {
coreutils::ZString contentLength(getenv("CONTENT_LENGTH")); coreutils::ZString contentLength(getenv("CONTENT_LENGTH"));