added: possibility to encode the session cookie (added files core/sessionidmanager.h and core/sessionidmanager.cpp)

added: config options:
       // whether or not we should encode the session cookie
       // (we have a special algorithm)
       // default: false
       bool session_cookie_encode;

       // if session_cookie_encode is true then you should provide
       // a file where AES keys will be stored
       std::wstring session_keys_file;

       // each session has an index -- an unsigned int value
       // this value is sent in the cookie string (is encoded)
       // and is incremented when session_index_time_increment time is passed since the last incrementing
       // if a client sent the cookie back the difference between
       // current index and the index in the cookie should be less than or equal to session_allow_index_difference
       // default: 8
       size_t session_allow_index_difference;

       // the time which should pass after the session index is incremented
       // default: 30
       // (session_allow_index_difference + 1) * session_index_time_increment should be less than a time
       // load of a page and all elements on it such as images (of course it depends on client's download too)
       time_t session_index_time_increment;

       // time in seconds after a new AES key pair should be generated
       // we have 256 pairs of keys so this time multiplied by 256 should not be less than
       // the max time of a session (session_remember_max_idle),
       // by default: 256 * 2 days = 512 days = 1.4 year > 3 months (session_remember_max_idle)
       // default: 172800 = 2 days (max: 2678400 = 1 month, min: 10)
       size_t session_key_renew_time;

changed: when printing the time of a request we print only two non-zero digits






git-svn-id: svn://ttmath.org/publicrep/winix/trunk@994 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2014-11-22 15:30:56 +00:00
parent 3547d326b8
commit 76314aab10
28 changed files with 1360 additions and 240 deletions

View File

@@ -40,32 +40,33 @@ app.o: ../../winix/notify/templatesnotify.h ../../winix/core/config.h
app.o: ../../winix/core/users.h ugcontainer.h lastcontainer.h mounts.h
app.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h image.h
app.o: threadmanager.h timezones.h timezone.h sessionmanager.h
app.o: sessioncontainer.h ipbancontainer.h ../../winix/functions/functions.h
app.o: ../../winix/functions/functionbase.h ../../winix/core/request.h
app.o: ../../winix/core/system.h ../../winix/core/synchro.h
app.o: ../../winix/functions/functionparser.h ../../winix/core/cur.h
app.o: ../../winix/functions/account.h ../../winix/functions/adduser.h
app.o: ../../winix/functions/cat.h ../../winix/functions/chmod.h
app.o: ../../winix/functions/privchanger.h ../../winix/functions/chown.h
app.o: ../../winix/functions/ckeditor.h ../../winix/functions/cp.h
app.o: ../../winix/functions/default.h ../../winix/functions/download.h
app.o: ../../winix/functions/emacs.h ../../winix/functions/env.h
app.o: ../../winix/functions/imgcrop.h ../../winix/functions/last.h
app.o: ../../winix/functions/login.h ../../winix/functions/logout.h
app.o: ../../winix/functions/ln.h ../../winix/functions/ls.h
app.o: ../../winix/functions/man.h ../../winix/functions/meta.h
app.o: ../../winix/functions/mkdir.h ../../winix/functions/mv.h
app.o: ../../winix/functions/nicedit.h ../../winix/functions/node.h
app.o: ../../winix/functions/passwd.h ../../winix/functions/priv.h
app.o: ../../winix/functions/pw.h ../../winix/functions/reload.h
app.o: ../../winix/functions/rm.h ../../winix/functions/rmuser.h
app.o: ../../winix/functions/sort.h ../../winix/functions/specialdefault.h
app.o: ../../winix/functions/stat.h ../../winix/functions/subject.h
app.o: ../../winix/functions/template.h ../../winix/functions/tinymce.h
app.o: ../../winix/functions/uname.h ../../winix/functions/upload.h
app.o: ../../winix/functions/uptime.h ../../winix/functions/who.h
app.o: ../../winix/functions/vim.h ../../winix/core/htmlfilter.h
app.o: ../../winix/templates/templates.h
app.o: sessioncontainer.h ipbancontainer.h sessionidmanager.h
app.o: ../../tito/src/base64.h ../../tito/src/aes.h
app.o: ../../winix/functions/functions.h ../../winix/functions/functionbase.h
app.o: ../../winix/core/request.h ../../winix/core/system.h
app.o: ../../winix/core/synchro.h ../../winix/functions/functionparser.h
app.o: ../../winix/core/cur.h ../../winix/functions/account.h
app.o: ../../winix/functions/adduser.h ../../winix/functions/cat.h
app.o: ../../winix/functions/chmod.h ../../winix/functions/privchanger.h
app.o: ../../winix/functions/chown.h ../../winix/functions/ckeditor.h
app.o: ../../winix/functions/cp.h ../../winix/functions/default.h
app.o: ../../winix/functions/download.h ../../winix/functions/emacs.h
app.o: ../../winix/functions/env.h ../../winix/functions/imgcrop.h
app.o: ../../winix/functions/last.h ../../winix/functions/login.h
app.o: ../../winix/functions/logout.h ../../winix/functions/ln.h
app.o: ../../winix/functions/ls.h ../../winix/functions/man.h
app.o: ../../winix/functions/meta.h ../../winix/functions/mkdir.h
app.o: ../../winix/functions/mv.h ../../winix/functions/nicedit.h
app.o: ../../winix/functions/node.h ../../winix/functions/passwd.h
app.o: ../../winix/functions/priv.h ../../winix/functions/pw.h
app.o: ../../winix/functions/reload.h ../../winix/functions/rm.h
app.o: ../../winix/functions/rmuser.h ../../winix/functions/sort.h
app.o: ../../winix/functions/specialdefault.h ../../winix/functions/stat.h
app.o: ../../winix/functions/subject.h ../../winix/functions/template.h
app.o: ../../winix/functions/tinymce.h ../../winix/functions/uname.h
app.o: ../../winix/functions/upload.h ../../winix/functions/uptime.h
app.o: ../../winix/functions/who.h ../../winix/functions/vim.h
app.o: ../../winix/core/htmlfilter.h ../../winix/templates/templates.h
app.o: ../../winix/templates/patterncacher.h
app.o: ../../winix/templates/indexpatterns.h ../../winix/templates/patterns.h
app.o: ../../winix/templates/changepatterns.h
@@ -121,6 +122,7 @@ config.o: ../../winix/core/config.h ../../winix/core/users.h ugcontainer.h
config.o: lastcontainer.h mounts.h mountparser.h crypt.h run.h users.h
config.o: groups.h group.h loadavg.h image.h threadmanager.h timezones.h
config.o: timezone.h sessionmanager.h sessioncontainer.h ipbancontainer.h
config.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h
config.o: ../../winix/functions/functions.h
config.o: ../../winix/functions/functionbase.h ../../winix/core/request.h
config.o: ../../winix/core/system.h ../../winix/core/synchro.h
@@ -274,6 +276,7 @@ image.o: ../../winix/core/users.h ugcontainer.h lastcontainer.h mounts.h
image.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h
image.o: threadmanager.h timezones.h timezone.h plugin.h pluginmsg.h
image.o: sessionmanager.h sessioncontainer.h ipbancontainer.h
image.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h
image.o: ../../winix/functions/functions.h
image.o: ../../winix/functions/functionbase.h ../../winix/core/request.h
image.o: ../../winix/core/system.h ../../winix/core/synchro.h
@@ -363,6 +366,7 @@ job.o: ../../winix/core/config.h ../../winix/core/users.h ugcontainer.h
job.o: lastcontainer.h mounts.h mountparser.h crypt.h run.h users.h groups.h
job.o: group.h loadavg.h image.h threadmanager.h timezones.h timezone.h
job.o: sessionmanager.h sessioncontainer.h ipbancontainer.h
job.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h
job.o: ../../winix/functions/functions.h ../../winix/functions/functionbase.h
job.o: ../../winix/core/request.h ../../winix/core/system.h
job.o: ../../winix/core/synchro.h ../../winix/functions/functionparser.h
@@ -541,6 +545,7 @@ mounts.o: lastcontainer.h mountparser.h plugin.h pluginmsg.h system.h job.h
mounts.o: basethread.h synchro.h crypt.h run.h users.h groups.h group.h
mounts.o: loadavg.h image.h threadmanager.h timezones.h timezone.h
mounts.o: sessionmanager.h sessioncontainer.h ipbancontainer.h
mounts.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h
mounts.o: ../../winix/functions/functions.h
mounts.o: ../../winix/functions/functionbase.h ../../winix/core/request.h
mounts.o: ../../winix/core/system.h ../../winix/core/synchro.h
@@ -604,7 +609,8 @@ plugin.o: ../../winix/notify/templatesnotify.h ../../winix/core/config.h
plugin.o: ../../winix/core/users.h ugcontainer.h lastcontainer.h mounts.h
plugin.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h
plugin.o: image.h threadmanager.h timezones.h timezone.h sessionmanager.h
plugin.o: sessioncontainer.h ipbancontainer.h
plugin.o: sessioncontainer.h ipbancontainer.h sessionidmanager.h
plugin.o: ../../tito/src/base64.h ../../tito/src/aes.h
plugin.o: ../../winix/functions/functions.h
plugin.o: ../../winix/functions/functionbase.h ../../winix/core/request.h
plugin.o: ../../winix/core/system.h ../../winix/core/synchro.h
@@ -672,7 +678,8 @@ plugindata.o: ../../winix/notify/templatesnotify.h ../../winix/core/config.h
plugindata.o: ../../winix/core/users.h ugcontainer.h lastcontainer.h mounts.h
plugindata.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h
plugindata.o: image.h threadmanager.h timezones.h timezone.h sessionmanager.h
plugindata.o: sessioncontainer.h ipbancontainer.h
plugindata.o: sessioncontainer.h ipbancontainer.h sessionidmanager.h
plugindata.o: ../../tito/src/base64.h ../../tito/src/aes.h
plugindata.o: ../../winix/functions/functions.h
plugindata.o: ../../winix/functions/functionbase.h ../../winix/core/request.h
plugindata.o: ../../winix/core/system.h ../../winix/core/synchro.h
@@ -768,6 +775,7 @@ request.o: ../../winix/core/config.h ../../winix/core/users.h ugcontainer.h
request.o: lastcontainer.h mounts.h mountparser.h crypt.h run.h users.h
request.o: groups.h group.h loadavg.h image.h threadmanager.h timezones.h
request.o: timezone.h sessionmanager.h sessioncontainer.h ipbancontainer.h
request.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h
request.o: ../../winix/functions/functions.h
request.o: ../../winix/functions/functionbase.h ../../winix/core/request.h
request.o: ../../winix/core/system.h ../../winix/core/synchro.h
@@ -839,6 +847,23 @@ sessioncontainer.o: ../../winix/core/textstream.h misc.h
sessioncontainer.o: ../../pikotools/utf8/utf8.h winix_const.h
sessioncontainer.o: ../../pikotools/space/spacetojson.h mount.h log.h
sessioncontainer.o: logmanipulators.h slog.h ../../winix/templates/locale.h
sessionidmanager.o: sessionidmanager.h ../../tito/src/base64.h
sessionidmanager.o: ../../pikotools/space/space.h
sessionidmanager.o: ../../pikotools/textstream/types.h ../../tito/src/aes.h
sessionidmanager.o: ../../pikotools/space/spaceparser.h
sessionidmanager.o: ../../pikotools/space/space.h ../../pikotools/utf8/utf8.h
sessionidmanager.o: ../../pikotools/date/date.h log.h textstream.h
sessionidmanager.o: logmanipulators.h ../../pikotools/textstream/textstream.h
sessionidmanager.o: ../../pikotools/convert/convert.h
sessionidmanager.o: ../../pikotools/convert/inttostr.h
sessionidmanager.o: ../../pikotools/membuffer/membuffer.h
sessionidmanager.o: ../../pikotools/textstream/types.h slog.h cur.h request.h
sessionidmanager.o: requesttypes.h item.h error.h config.h htmlfilter.h
sessionidmanager.o: ../../winix/templates/htmltextstream.h
sessionidmanager.o: ../../winix/core/textstream.h misc.h winix_const.h
sessionidmanager.o: ../../pikotools/space/spacetojson.h session.h user.h
sessionidmanager.o: plugindata.h rebus.h ipban.h mount.h
sessionidmanager.o: ../../winix/templates/locale.h
sessionmanager.o: sessionmanager.h sessioncontainer.h session.h item.h
sessionmanager.o: ../../pikotools/space/space.h
sessionmanager.o: ../../pikotools/textstream/types.h
@@ -879,7 +904,9 @@ sessionmanager.o: ../../winix/notify/templatesnotify.h
sessionmanager.o: ../../winix/core/config.h ../../winix/core/users.h
sessionmanager.o: ugcontainer.h mounts.h mountparser.h crypt.h run.h users.h
sessionmanager.o: groups.h group.h loadavg.h image.h threadmanager.h
sessionmanager.o: timezones.h timezone.h sessionparser.h plugin.h pluginmsg.h
sessionmanager.o: timezones.h timezone.h sessionidmanager.h
sessionmanager.o: ../../tito/src/base64.h ../../tito/src/aes.h
sessionmanager.o: sessionparser.h plugin.h pluginmsg.h
sessionmanager.o: ../../winix/functions/functions.h
sessionmanager.o: ../../winix/functions/functionbase.h
sessionmanager.o: ../../winix/core/request.h ../../winix/core/system.h
@@ -1013,7 +1040,8 @@ system.o: ../../winix/functions/template.h ../../winix/functions/tinymce.h
system.o: ../../winix/functions/uname.h ../../winix/functions/upload.h
system.o: ../../winix/functions/uptime.h ../../winix/functions/who.h
system.o: ../../winix/functions/vim.h plugin.h pluginmsg.h sessionmanager.h
system.o: sessioncontainer.h ipbancontainer.h
system.o: sessioncontainer.h ipbancontainer.h sessionidmanager.h
system.o: ../../tito/src/base64.h ../../tito/src/aes.h
threadmanager.o: threadmanager.h basethread.h synchro.h log.h textstream.h
threadmanager.o: logmanipulators.h ../../pikotools/textstream/textstream.h
threadmanager.o: ../../pikotools/space/space.h
@@ -1088,7 +1116,8 @@ users.o: ../../ezc/src/patternparser.h ../../winix/notify/notifythread.h
users.o: ../../winix/core/basethread.h ../../winix/notify/templatesnotify.h
users.o: ../../winix/core/config.h ../../winix/core/users.h ugcontainer.h
users.o: mounts.h mountparser.h crypt.h run.h groups.h group.h loadavg.h
users.o: image.h threadmanager.h timezones.h timezone.h plugin.h pluginmsg.h
users.o: image.h threadmanager.h timezones.h timezone.h sessionidmanager.h
users.o: ../../tito/src/base64.h ../../tito/src/aes.h plugin.h pluginmsg.h
users.o: ../../winix/functions/functions.h
users.o: ../../winix/functions/functionbase.h ../../winix/core/request.h
users.o: ../../winix/core/system.h ../../winix/core/synchro.h