Git based wiki inspired by Gollum
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
780B

  1. from __future__ import absolute_import
  2. import logging
  3. from flask import request, current_app
  4. from flask_login import current_user, logout_user
  5. from .models import User as ProxyUser
  6. logger = logging.getLogger("realms.auth")
  7. def before_request():
  8. header_name = current_app.config["AUTH_PROXY_HEADER_NAME"]
  9. remote_user = request.headers.get(header_name)
  10. if remote_user:
  11. if current_user.is_authenticated:
  12. if current_user.id == remote_user:
  13. return
  14. logger.info("login in realms and login by proxy are different: '{}'/'{}'".format(
  15. current_user.id, remote_user))
  16. logout_user()
  17. logger.info("User logged in by proxy as '{}'".format(remote_user))
  18. ProxyUser.do_login(remote_user)