Exemple #1
0
    def test_callback(self):
        app = Flask(__name__)
        app.config['SECRET_KEY'] = 'foo'
        paranoid = Paranoid()
        paranoid.init_app(app)
        paranoid.redirect_view = 'custom_redirect'

        @app.route('/')
        def index():
            return 'foobar'

        @paranoid.on_invalid_session
        def custom_callback():
            return 'foo'

        client = app.test_client(use_cookies=True)

        self.assertEqual(paranoid.redirect_view, custom_callback)

        rv = client.get('/', headers={'User-Agent': 'foo'})
        self.assertEqual(rv.status_code, 200)

        rv = client.get('/', headers={'User-Agent': 'bar'})
        self.assertEqual(rv.status_code, 200)
        self.assertEqual(rv.get_data(as_text=True), 'foo')
        self.assertIn(self._delete_cookie('session'),
                      rv.headers.getlist('Set-Cookie'))
        self.assertNotIn(self._delete_cookie('remember_token'),
                         rv.headers.getlist('Set-Cookie'))
Exemple #2
0
from flask_paranoid import Paranoid
from typing import Callable

from TexDBook.src.python.core.init_app import app, default_init_app
from TexDBook.src.python.util.flask.flask_utils_types import JsonOrMessage
from TexDBook.src.python.util.flask.rest_api import json, rest_api
from TexDBook.src.python.util.oop import override
from TexDBook.src.python.util.password import sha256

init_app = default_init_app

login_manager = LoginManager()  # type: LoginManager
login_manager.init_app(app)

paranoid = Paranoid()  # type: Paranoid
paranoid.init_app(app)

# @override(Paranoid)
# def write_token_to_session(_super, self, token):
#     print("writing token: " + token)
#     print(paranoid.create_token())
#     print(paranoid.get_token_from_session())
#     print(request.headers.get("User-Agent"))
#     print(request.headers.get("X-Forwarded-For"))
#     print(request.remote_addr)
#     return _super(self, token)


@override(Paranoid)
def create_token(_super, self):
    # type: (Callable[[], str], Paranoid) -> str