Commit 785b1c361cf71e02ac6a1af38b2e78e7564dd56f
1 parent
5fc9ce54
changed frontend to make it to use ldap login and simple session setup without username
Showing
4 changed files
with
33 additions
and
5 deletions
| @@ -13,6 +13,7 @@ | @@ -13,6 +13,7 @@ | ||
| 13 | <body> | 13 | <body> |
| 14 | <ul id="menu"> | 14 | <ul id="menu"> |
| 15 | <li>random Value</li> | 15 | <li>random Value</li> |
| 16 | + <li>start session</li> | ||
| 16 | <li>login</li> | 17 | <li>login</li> |
| 17 | </ul> | 18 | </ul> |
| 18 | <div id="sessinfo" class="x-small"> | 19 | <div id="sessinfo" class="x-small"> |
| @@ -14,6 +14,10 @@ $(document).ready(function() { | @@ -14,6 +14,10 @@ $(document).ready(function() { | ||
| 14 | }); | 14 | }); |
| 15 | 15 | ||
| 16 | $("ul#menu li:eq(1)").click(function() { | 16 | $("ul#menu li:eq(1)").click(function() { |
| 17 | + $.getJSON("/sess/", $.proxy(sess.loadJSON, sess)); | ||
| 18 | + }); | ||
| 19 | + | ||
| 20 | + $("ul#menu li:eq(2)").click(function() { | ||
| 17 | $("#login").removeClass("hide"); | 21 | $("#login").removeClass("hide"); |
| 18 | }); | 22 | }); |
| 19 | 23 |
| @@ -15,6 +15,8 @@ function Session(sId) | @@ -15,6 +15,8 @@ function Session(sId) | ||
| 15 | 15 | ||
| 16 | Session.prototype.loadJSON = function(data) | 16 | Session.prototype.loadJSON = function(data) |
| 17 | { | 17 | { |
| 18 | + this.stop(); | ||
| 19 | + | ||
| 18 | this.id = ("0" == data.id)? "none" : data.id; | 20 | this.id = ("0" == data.id)? "none" : data.id; |
| 19 | this.timeout = data.timeout * 10; | 21 | this.timeout = data.timeout * 10; |
| 20 | this.timeleft = data.timeleft * 10; | 22 | this.timeleft = data.timeleft * 10; |
| @@ -24,6 +24,7 @@ | @@ -24,6 +24,7 @@ | ||
| 24 | #include <stdio.h> | 24 | #include <stdio.h> |
| 25 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| 26 | #include <time.h> | 26 | #include <time.h> |
| 27 | +#include <string.h> | ||
| 27 | #include <sys/time.h> | 28 | #include <sys/time.h> |
| 28 | 29 | ||
| 29 | #include "class.h" | 30 | #include "class.h" |
| @@ -116,7 +117,7 @@ httpWorkerProcess(HttpWorker this, Stream st) | @@ -116,7 +117,7 @@ httpWorkerProcess(HttpWorker this, Stream st) | ||
| 116 | * an empty 200 OK | 117 | * an empty 200 OK |
| 117 | */ | 118 | */ |
| 118 | if (NULL == password || NULL == username) { | 119 | if (NULL == password || NULL == username) { |
| 119 | - response = new(HttpResponse, "HTTP/1.1", 200, "OK"); | 120 | + response = new(HttpResponse, "HTTP/1.1", 403, "Forbidden"); |
| 120 | } | 121 | } |
| 121 | 122 | ||
| 122 | if (NULL == response) { | 123 | if (NULL == response) { |
| @@ -126,11 +127,22 @@ httpWorkerProcess(HttpWorker this, Stream st) | @@ -126,11 +127,22 @@ httpWorkerProcess(HttpWorker this, Stream st) | ||
| 126 | (char*)(password->value), password->nvalue); | 127 | (char*)(password->value), password->nvalue); |
| 127 | 128 | ||
| 128 | if (!authenticate(this->auth, cred)) { | 129 | if (!authenticate(this->auth, cred)) { |
| 129 | - response = new(HttpResponse, "HTTP/1.1", 200, "OK"); | 130 | + response = new(HttpResponse, "HTTP/1.1", 403, "Forbidden"); |
| 130 | } else { | 131 | } else { |
| 131 | - this->session = sessionAdd( | ||
| 132 | - this->sroot, | ||
| 133 | - new(Session, username->value, username->nvalue)); | 132 | + if (NULL == this->session) { |
| 133 | + this->session = sessionAdd( | ||
| 134 | + this->sroot, | ||
| 135 | + new(Session, | ||
| 136 | + username->value, | ||
| 137 | + username->nvalue)); | ||
| 138 | + } else { | ||
| 139 | + this->session->username = malloc(username->nvalue + 1); | ||
| 140 | + this->session->username[username->nvalue] = 0; | ||
| 141 | + memcpy(this->session->username, | ||
| 142 | + username->value, | ||
| 143 | + username->nvalue); | ||
| 144 | + } | ||
| 145 | + | ||
| 134 | nbuf = sprintf(buffer, | 146 | nbuf = sprintf(buffer, |
| 135 | "sid=%lu;Path=/", | 147 | "sid=%lu;Path=/", |
| 136 | this->session->id); | 148 | this->session->id); |
| @@ -161,6 +173,15 @@ httpWorkerProcess(HttpWorker this, Stream st) | @@ -161,6 +173,15 @@ httpWorkerProcess(HttpWorker this, Stream st) | ||
| 161 | response = (HttpMessage)httpResponseSession(this->session); | 173 | response = (HttpMessage)httpResponseSession(this->session); |
| 162 | } | 174 | } |
| 163 | 175 | ||
| 176 | + if (0 == strcmp("/sess/", request->path)) { | ||
| 177 | + if (NULL == this->session) { | ||
| 178 | + this->session = sessionAdd( | ||
| 179 | + this->sroot, | ||
| 180 | + new(Session, NULL, 0)); | ||
| 181 | + } | ||
| 182 | + response = (HttpMessage)httpResponseSession(this->session); | ||
| 183 | + } | ||
| 184 | + | ||
| 164 | if (0 == strcmp("/randval/", request->path)) { | 185 | if (0 == strcmp("/randval/", request->path)) { |
| 165 | if (NULL != this->session) { | 186 | if (NULL != this->session) { |
| 166 | response = (HttpMessage)httpResponseRandval( | 187 | response = (HttpMessage)httpResponseRandval( |
Please
register
or
login
to post a comment