Log username in Apache access logs

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class LogRemoteUserMiddleware(object):
    """
    Middleware for logging the session user in Apache. This sets the username
    information so that Apache is aware of the logged in user and can log
    the username in the access_log (just like when the user is logged in
    with basic authentication).
    """

    def process_request(self, request):
        # AuthenticationMiddleware is required so that request.user exists
        if not hasattr(request, 'user'):
            raise ImproperlyConfigured(
                "LogRemoteUserMiddleware requires AuthenticationMiddleware"
                " to be in MIDDLEWARE_CLASSES before LogRemoteUserMiddleware.")
        # set the REMOTE_USER variable if a user is logged in
        if request.user.is_authenticated():
            # specific for mod_python
            if isinstance(request, ModPythonRequest):
                request._req.user = str(request.user.username)

More like this

  1. Access Control Mechanisms with mod_wsgi by johnnoone 3 years, 3 months ago
  2. Log Django exceptions to Apache error log in mod_wsgi by simon 3 years, 8 months ago
  3. Middleware to log username into apache logs with mod_python by kahless 6 years, 2 months ago
  4. Use the WSGIAccessScript Directive to secure static files based on the Django session by LuckiDog 2 years ago
  5. South introspection rules for TimeZoneFields by serkan 2 years, 2 months ago

Comments

sjaensch (on March 2, 2010):

Unfortunately, this does not work with mod_wsgi. Any hints on how to get it working?

#

arthur (on March 4, 2010):

Unfortunally not, see this google groups dicsussion

#

(Forgotten your password?)