add support for http_remote_user
This commit is contained in:
@@ -23,7 +23,7 @@ Authentication module.
|
||||
|
||||
Authentication is based on usernames and passwords. If something more
|
||||
advanced is needed an external WSGI server or reverse proxy can be used
|
||||
(see ``remote_user`` or ``http_x_remote_user`` backend).
|
||||
(see ``remote_user``, ``http_remote_user`` or ``http_x_remote_user`` backend).
|
||||
|
||||
Take a look at the class ``BaseAuth`` if you want to implement your own.
|
||||
|
||||
@@ -40,6 +40,7 @@ from radicale import config, types, utils
|
||||
from radicale.log import logger
|
||||
|
||||
INTERNAL_TYPES: Sequence[str] = ("none", "remote_user", "http_x_remote_user",
|
||||
"http_remote_user",
|
||||
"denyall",
|
||||
"htpasswd",
|
||||
"ldap",
|
||||
@@ -59,6 +60,7 @@ CACHE_LOGIN_TYPES: Sequence[str] = (
|
||||
|
||||
INSECURE_IF_NO_LOOPBACK_TYPES: Sequence[str] = (
|
||||
"remote_user",
|
||||
"http_remote_user",
|
||||
"http_x_remote_user",
|
||||
)
|
||||
|
||||
|
||||
36
radicale/auth/http_remote_user.py
Normal file
36
radicale/auth/http_remote_user.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# This file is part of Radicale - CalDAV and CardDAV server
|
||||
# Copyright © 2025-2025 Peter Bieringer <pb@bieringer.de>
|
||||
#
|
||||
# This library is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Radicale. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
"""
|
||||
Authentication backend that takes the username from the
|
||||
``HTTP_REMOTE_USER`` header.
|
||||
|
||||
It's intended for use with a reverse proxy. Be aware as this will be insecure
|
||||
if the reverse proxy is not configured properly.
|
||||
|
||||
"""
|
||||
|
||||
from typing import Tuple, Union
|
||||
|
||||
from radicale import types
|
||||
from radicale.auth import none
|
||||
|
||||
|
||||
class Auth(none.Auth):
|
||||
|
||||
def get_external_login(self, environ: types.WSGIEnviron) -> Union[
|
||||
Tuple[()], Tuple[str, str]]:
|
||||
return environ.get("HTTP_REMOTE_USER", ""), ""
|
||||
Reference in New Issue
Block a user