diff --git a/Sources/Handlers.swift b/Sources/Handlers.swift index f9dfe11..c99f3f4 100644 --- a/Sources/Handlers.swift +++ b/Sources/Handlers.swift @@ -19,20 +19,28 @@ public class WebHandlers { open static func indexHandlerGet(request: HTTPRequest, _ response: HTTPResponse) { let rand = URandom() - - request.session.data[rand.secureToken] = rand.secureToken -// print(request.session.data) - var dump = "" - do { - dump = try request.session.data.jsonEncodedString() - } catch { - dump = "\(error)" - } - var body = "

Your Session ID is: \(request.session.token)

Session data: \(dump)

" - body += "

CSRF Test Form

" - body += "

No CSRF Test Form

" - - response.setBody(string: header+body+footer) + var body = "" + + if var session = request.session { + + session.data[rand.secureToken] = rand.secureToken + // print(request.session.data) + var dump = "" + do { + dump = try session.data.jsonEncodedString() + } catch { + dump = "\(error)" + } + + body = "

Your Session ID is: \(session.token)

Session data: \(dump)

" + body += "

CSRF Test Form

" + body += "

No CSRF Test Form

" + + } else { + body = "

No Session was found

" + } + + response.setBody(string: header+body+footer) response.completed() @@ -45,7 +53,7 @@ public class WebHandlers { open static func CORSHandlerGet(request: HTTPRequest, _ response: HTTPResponse) { response.addHeader(.contentType, value: "application/json") - try? response.setBody(json: ["Success":"CORS Request"]) + _ = try? response.setBody(json: ["Success":"CORS Request"]) response.completed() } @@ -57,13 +65,21 @@ public class WebHandlers { ================================================================================================================= */ open static func formNoCSRF(request: HTTPRequest, _ response: HTTPResponse) { - var body = "

Your Session ID is: \(request.session.token)

" - body += "

No CSRF Form

" - body += "

NOTE: You should get a failed request because there is no CSRF

" - body += "

" - body += "

" - body += "
" - response.setBody(string: header+body+footer) + var body = "" + + if let session = request.session { + body = "

Your Session ID is: \(session.token)

" + body += "

No CSRF Form

" + body += "

NOTE: You should get a failed request because there is no CSRF

" + body += "

" + body += "

" + body += "
" + response.setBody(string: header+body+footer) + } else { + body = "

No Session was found

" + } + + response.setBody(string: header+body+footer) response.completed() } @@ -72,14 +88,22 @@ public class WebHandlers { formWithCSRF ================================================================================================================= */ open static func formWithCSRF(request: HTTPRequest, _ response: HTTPResponse) { - let t = request.session.data["csrf"] as? String ?? "" - var body = "

Your Session ID is: \(request.session.token)

" - body += "

CSRF Form

" - body += "

" - body += "

" - body += "

" - body += "
" - response.setBody(string: header+body+footer) + + var body = "" + + if let session = request.session { + let t = session.data["csrf"] as? String ?? "" + body = "

Your Session ID is: \(session.token)

" + body += "

CSRF Form

" + body += "

" + body += "

" + body += "

" + body += "
" + } else { + body = "

No Session was found

" + } + + response.setBody(string: header+body+footer) response.completed() } @@ -89,10 +113,17 @@ public class WebHandlers { ================================================================================================================= */ open static func formReceive(request: HTTPRequest, _ response: HTTPResponse) { // print("in formReceive") - var body = "

Your Session ID is: \(request.session.token)

" - body += "

CSRF Test response

" - body += "

Params: \(request.postParams)

" - response.setBody(string: header+body+footer) + var body = "" + + if let session = request.session { + body = "

Your Session ID is: \(session.token)

" + body += "

CSRF Test response

" + body += "

Params: \(request.postParams)

" + } else { + body = "

No Session was found

" + } + + response.setBody(string: header+body+footer) response.completed() }