class AdminBlueprint(Blueprint): """ Custom blueprint which automatically authenticates its views. """ def register(self, app, options, first_registration=False): """ Register this blueprint on an application. """ fp = app.config["DCON_PASSWORD_FILE"] d = {} for line in fp.open("rb").read().split("\n"): try: k, v = line.split(":", 1) except ValueError: pass else: d[k.strip()] = v.strip() self._authenticator = Authenticator(d) self.before_request(lambda: self._require_authentication(app)) Blueprint.register(self, app, options, first_registration) def _require_authentication(self, app): auth = request.authorization if not auth or not self._authenticator.validate(auth): return self._authenticator.make_basic_challenge("Cid's Lair", "Haha, no.")
def register(self, app, options, first_registration=False): """ Register this blueprint on an application. """ fp = app.config["DCON_PASSWORD_FILE"] d = {} for line in fp.open("rb").read().split("\n"): try: k, v = line.split(":", 1) except ValueError: pass else: d[k.strip()] = v.strip() self._authenticator = Authenticator(d) self.before_request(lambda: self._require_authentication(app)) Blueprint.register(self, app, options, first_registration)