diff --git a/core/admin/mailu/sso/views/base.py b/core/admin/mailu/sso/views/base.py index b347d3cb..59c4ef04 100644 --- a/core/admin/mailu/sso/views/base.py +++ b/core/admin/mailu/sso/views/base.py @@ -130,6 +130,7 @@ https://mailu.io/master/configuration.html#header-authentication-using-an-extern def _proxy(): proxy_ip = flask.request.headers.get('X-Forwarded-By', flask.request.remote_addr) ip = ipaddress.ip_address(proxy_ip) + client_ip = flask.request.headers.get('X-Real-IP', flask.request.remote_addr) if not any(ip in cidr for cidr in app.config['PROXY_AUTH_WHITELIST']): flask.current_app.logger.error(f'Login failed by proxy - not on whitelist: from {client_ip} through {flask.request.remote_addr}.') return flask.abort(500, '%s is not on PROXY_AUTH_WHITELIST' % proxy_ip) diff --git a/towncrier/newsfragments/3314.bugfix b/towncrier/newsfragments/3314.bugfix new file mode 100644 index 00000000..87558ee4 --- /dev/null +++ b/towncrier/newsfragments/3314.bugfix @@ -0,0 +1 @@ +Define client_ip variable in _proxy method. Fixes server error when using proxy authentication \ No newline at end of file