diff --git a/server.py b/server.py index 70c5f4e..a43e558 100644 --- a/server.py +++ b/server.py @@ -1,3 +1,4 @@ +import http.cookies import http.server import urllib.parse @@ -11,9 +12,23 @@ class HTTPRequestHandler(http.server.BaseHTTPRequestHandler): encoded = html.encode('utf-8') length = len(encoded) + # TODO: Make this more sensical + sent_cookies = http.cookies.SimpleCookie() + sent_cookies['buranun_session'] = 'dihutenosa' + sent_cookies['buranun_session']['domain'] = 'ahti-saarelainen.zgrep.org' + sent_cookies['buranun_session']['path'] = '/board' + sent_cookies['buranun_session']['max-age'] = 60 + sent_cookies['buranun_session']['secure'] = True + sent_cookies['buranun_session']['httponly'] = True + self.send_response(status_code) self.send_header('Content-Type', 'text/html; charset=utf-8') self.send_header('Content-Length', length) + + # Since http.cookies doesn't play nicely with http.server we need to do this manually + self.flush_headers() + self.wfile.write(sent_cookies.output().encode('utf-8') + b'\r\n') + self.end_headers() self.wfile.write(encoded) @@ -23,6 +38,23 @@ class HTTPRequestHandler(http.server.BaseHTTPRequestHandler): self.__send_html(html, status_code = 404) def do_GET(self): + # TODO: Do something with the session + cookies_string = self.headers['cookie'] + + if cookies_string is not None: + received_cookies = http.cookies.SimpleCookie() + + try: + received_cookies.load(cookies_string) + except http.cookies.CookieError: + print('malformed cookies') + + if 'buranun_session' in received_cookies: + print(received_cookies['buranun_session'].value) + + else: + print('no cookies') + path = urllib.parse.unquote(self.path) path_components = [component for component in path.split('/') if component != '']