~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-07-28 04:13:05 UTC
  • mfrom: (1801.1.2 die-cjson-die)
  • Revision ID: grantw@unimelb.edu.au-20100728041305-xwypm3cn1l1mnki1
Port from cjson to (simple)json.

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.
49
65
            String. The request method (eg. 'GET', 'POST', etc)
50
66
        uri (read)
51
67
            String. The path portion of the URI.
 
68
        unparsed_uri (read)
 
69
            String. The path portion of the URI, unparsed with query string.
52
70
        app (read)
53
71
            String. Name of the application specified in the URL, or None.
54
72
        path (read)
119
137
        # Inherit values for the input members
120
138
        self.method = req.method
121
139
        self.uri = req.uri
 
140
        self.unparsed_uri = req.unparsed_uri
122
141
        # Split the given path into the app (top-level dir) and sub-path
123
142
        # (after first stripping away the root directory)
124
143
        (self.app, self.path) = (ivle.util.split_path(req.uri))
255
274
        """
256
275
        # Cache the session object and set the timeout to 24 hours.
257
276
        if not hasattr(self, 'session'):
258
 
            self.session = mod_python.Session.FileSession(self.apache_req,
259
 
                                               timeout = 60 * 60 * 24)
 
277
            self.session = PotentiallySecureFileSession(
 
278
                self.apache_req, timeout = 60 * 60 * 24)
260
279
        return self.session
261
280
 
262
281
    def get_fieldstorage(self):