mirror of
https://github.com/certbot/certbot.git
synced 2026-08-03 03:41:53 +02:00
successful timeout and failure of sessions
This commit is contained in:
+11
-2
@@ -6,6 +6,8 @@ from Crypto import Random
|
|||||||
from chocolate_protocol_pb2 import chocolatemessage
|
from chocolate_protocol_pb2 import chocolatemessage
|
||||||
from google.protobuf.message import DecodeError
|
from google.protobuf.message import DecodeError
|
||||||
|
|
||||||
|
MaximumSessionAge = 100 # seconds, to demonstrate timeout
|
||||||
|
|
||||||
def hmac(k, m):
|
def hmac(k, m):
|
||||||
return HMAC.new(k, m, SHA256).hexdigest()
|
return HMAC.new(k, m, SHA256).hexdigest()
|
||||||
|
|
||||||
@@ -30,11 +32,16 @@ class sessionstore(object):
|
|||||||
raise KeyError
|
raise KeyError
|
||||||
|
|
||||||
def kill(self, session):
|
def kill(self, session):
|
||||||
self.f[session]["live"] = False
|
temp = self.f[session]
|
||||||
|
temp["live"] = False
|
||||||
|
self.f[session] = temp
|
||||||
|
|
||||||
def destroy(self, session):
|
def destroy(self, session):
|
||||||
del self.f[session]
|
del self.f[session]
|
||||||
|
|
||||||
|
def age(self, session):
|
||||||
|
return int(time.time()) - self.f[session]["created"]
|
||||||
|
|
||||||
class index:
|
class index:
|
||||||
def GET(self):
|
def GET(self):
|
||||||
web.header("Content-type", "text/html")
|
web.header("Content-type", "text/html")
|
||||||
@@ -67,13 +74,15 @@ class index:
|
|||||||
r.failure.cause = r.StaleRequest
|
r.failure.cause = r.StaleRequest
|
||||||
elif not self.sessions.live(session):
|
elif not self.sessions.live(session):
|
||||||
r.failure.cause = r.StaleRequest
|
r.failure.cause = r.StaleRequest
|
||||||
|
elif self.sessions.age(session) > MaximumSessionAge:
|
||||||
|
self.sessions.kill(session)
|
||||||
|
r.failure.cause = r.StaleRequest
|
||||||
if m.debug:
|
if m.debug:
|
||||||
web.header("Content-type", "text/plain")
|
web.header("Content-type", "text/plain")
|
||||||
return "SAW MESSAGE: %s\n" % str(r)
|
return "SAW MESSAGE: %s\n" % str(r)
|
||||||
else:
|
else:
|
||||||
return r.SerializeToString()
|
return r.SerializeToString()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app = web.application(urls, globals())
|
app = web.application(urls, globals())
|
||||||
app.run()
|
app.run()
|
||||||
|
|||||||
Reference in New Issue
Block a user