import os from flask import Flask, request, session from flask_restful import Api, Resource #from flask_cors import CORS, cross_origin from .tunnelstat import SSHSession app = Flask(__name__) app.config['LOCAL_DEV'] = True app.config['ENABLELAUNCH'] = False app.config['MESSAGES'] = '/messages' app.config['DEBUG'] = True app.config['SECRET_KEY'] = 'asdasfdfj' import datetime app.config['PERMANENT_SESSION_LIFETIME'] = datetime.timedelta(days=1) app.config['SESSION_REFRESH_EACH_REQUEST'] = True app.config['SESSION_COOKIE_NAME'] = 'tessession' app.config['SESSION_COOKIE_SECURE'] = True app.config['SESSION_COOKIE_HTTPONLY'] = True app.config['SESSION_COOKIE_SAMESITE'] = None app.config['APPLICATION_ROOT'] = '/' if not app.config['LOCAL_DEV']: app.config['APPLICATION_ROOT'] = '/tes' api = Api(app) sshsessions = {} #CORS(app, supports_credentials=True, origin="*") islocal = True from . import apiendpoints @app.after_request def after_cleanup_sessions(response): import logging logger=logging.getLogger() try: sshsessid = session.get('sshsessid', None) # kvsessionextension.cleanup_sessions(app) _ttl = app.config['PERMANENT_SESSION_LIFETIME'] if isinstance(_ttl, int): ttl = datetime.timedelta(seconds=_ttl) else: ttl = _ttl for k, sshsess in list(sshsessions.items()): if datetime.datetime.now() > sshsess.last + ttl: logger.debug("session last seen at {} now {}".format(sshsess.last,datetime.datetime.now())) sshsess.kill() del sshsessions[k] except: logger.error('failed to cleanup old sessions') return response if __name__ == '__main__': app.run(port=8080)