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['DEBUG'] = True app.config['SECRET_KEY'] = 'asdasfdfj' import datetime app.config['PERMANENT_SESSION_LIFETIME'] = datetime.timedelta(seconds=3600) 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'] = 'Strict' 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() 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] return response if __name__ == '__main__': app.run(port=8080)