def closeSession(request): """Close the session, and, if necessary, set any required cookies """ session = ISession(request, None) if session is not None: if session.accessed(): session.persist() sessionInstructions = session.request if sessionInstructions.get('set_cookie', False): if sessionInstructions['cookie_out']: cookieObj = session.cookie[session.key] key = cookieObj.key value = session.cookie.value_encode(cookieObj.value)[1] args = dict([(k, v) for k, v in cookieObj.items() if v]) args.setdefault('path', session._path) if args.get('httponly'): args.pop('httponly') args['http_only'] = True request.response.setCookie(key, value, **args)