Per request environment not cleaned between requests with mod_python
|Reported by:||André Cruz||Owned by:||nobody|
|Cc:||Triage Stage:||Design decision needed|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
I'm using a single sign-on system called Shibboleth which is implemented via an Apache module that populates the request environment with information about the logged-in user (if there is one) to the underlying application, Django in this case.
What I'm seeing is, when a logged-in user appears, the vars are set and I can access them in the views with os.environ[VAR]. After that, all requests remain with those vars set, even if the Shibboleth module does not set them in the request environment.
I think this is because of this line in the modpython handler:
This adds the vars to the environ but does not clear them if they are not there. Maybe a copy of the original environment should be kept and restored after the request is served. Or is there a way to access the req.subprocess_env in a view?