~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/dispatch/request.py

  • Committer: William Grant
  • Date: 2010-03-03 04:05:17 UTC
  • Revision ID: grantw@unimelb.edu.au-20100303040517-7grsyhj96ksqzi9e
Remove IVLEError support; only fileservice used it, and the last invocation is GONE.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
    import mod_python.Session
30
30
    import mod_python.Cookie
31
31
    import mod_python.util
 
32
    import mod_python.apache
 
33
 
 
34
    class PotentiallySecureFileSession(mod_python.Session.FileSession):
 
35
        """A mod_python FileSession that sets secure cookie when appropriate.
 
36
 
 
37
        A secure cookie will be set if the request itself is over HTTPS, or if
 
38
        a proxy in front has set X-Forwarded-Proto: https. Otherwise the cookie
 
39
        will be insecure.
 
40
        """
 
41
        def make_cookie(self):
 
42
            cookie = super(PotentiallySecureFileSession, self).make_cookie()
 
43
            if (self._req.is_https() or
 
44
                self._req.headers_in.get('X-Forwarded-Proto') == 'https'):
 
45
                cookie.secure = True
 
46
            return cookie
32
47
except ImportError:
33
48
    # This needs to be importable from outside Apache.
34
49
    pass
40
55
from ivle.webapp.base.plugins import CookiePlugin
41
56
import ivle.webapp.security
42
57
 
 
58
 
43
59
class Request:
44
60
    """An IVLE request object. This is presented to the IVLE apps as a way of
45
61
    interacting with the web server and the dispatcher.
255
271
        """
256
272
        # Cache the session object and set the timeout to 24 hours.
257
273
        if not hasattr(self, 'session'):
258
 
            self.session = mod_python.Session.FileSession(self.apache_req,
259
 
                                               timeout = 60 * 60 * 24)
 
274
            self.session = PotentiallySecureFileSession(
 
275
                self.apache_req, timeout = 60 * 60 * 24)
260
276
        return self.session
261
277
 
262
278
    def get_fieldstorage(self):