diff --git a/cps/error_handler.py b/cps/error_handler.py
index 0df983329..54942ec22 100644
--- a/cps/error_handler.py
+++ b/cps/error_handler.py
@@ -33,6 +33,7 @@ log = logger.create()
# custom error page
def error_http(error):
+ headers = {'WWW-Authenticate': 'Basic realm="calibre-web"'} if error.code == 401 else {}
return render_template('http_error.html',
error_code="Error {0}".format(error.code),
error_name=error.name,
@@ -40,7 +41,7 @@ def error_http(error):
goto_admin=False,
unconfigured=not config.db_configured,
instance=config.config_calibre_web_title
- ), error.code
+ ), error.code, headers
def internal_error(error):
diff --git a/cps/opds.py b/cps/opds.py
index e8a405116..c5be8cd8d 100644
--- a/cps/opds.py
+++ b/cps/opds.py
@@ -21,7 +21,6 @@
# along with this program. If not, see .
import datetime
-# import json
from urllib.parse import unquote_plus
from flask import Blueprint, request, render_template, make_response, abort, g, jsonify
@@ -439,6 +438,7 @@ def feed_shelf(book_id):
@opds.route("/opds/download///")
@requires_basic_auth_if_no_ano
def opds_download_link(book_id, book_format):
+ return abort(401)
if not auth.current_user().role_download():
return abort(401)
client = "kobo" if "Kobo" in request.headers.get('User-Agent') else ""