#!/usr/bin/env python3 from flask import Flask, g, request, abort, Response from wiki import WikiClient, WikiException import config domain = getattr(config, "WIKI_DOMAIN", None) app = Flask(__name__) app.config.from_object(config) def try_wiki_login(user, password): client = WikiClient(endpoint=config.WIKI_API_ENDPOINT) try: client.login(user, password, domain=domain) client.logout() return True except WikiException as error: print(error) return False @app.route("/") def index(): auth = request.authorization if not auth: return Response( "Please authenticate with your Wiki credentials.", 401, {"WWW-Authenticate": "Basic realm=\"Wiki\""}) if not try_wiki_login(auth.username, auth.password): return Response("Forbidden", status=403) return Response("OK", status=200)