annotate example/example.py @ 47:f2474ffcee96

avoid namespace collisions; buckle your safety-belt
author Jeff Hammel <jhammel@mozilla.com>
date Mon, 30 Dec 2013 10:12:25 -0800
parents 52713d176ab9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 #!/usr/bin/env python
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 def example_app(environ, start_response):
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4 if environ['PATH_INFO'].strip('/') == 'authorization_required':
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
5 user = environ.get('REMOTE_USER')
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
6 if user:
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
7 start_response("200 OK", [('Content-Type', 'text/plain'),
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
8 ('Content-Length', str(len(user)))])
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
9 return [user]
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
10 else:
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
11 text = '401 Unauthorized'
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12 start_response("401 Unauthorized", [('Content-Type', 'text/plain'),
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
13 ('Content-Length', str(len(text)))])
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
14 return [text]
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
15 text = """<html><body>
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
16 <a href="/authorization_required">bet you can't go here!</a>
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
17 </body></html>"""
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
18 start_response("200 OK", [('Content-Type', 'text/html'),
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
19 ('Content-Length', str(len(text)))])
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
20 return [text]
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
21
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
22 if __name__ == '__main__':
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
23 from wsgiref import simple_server
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
24 server = simple_server.make_server('127.0.0.1', 12345, example_app)
52713d176ab9 add an example....not done yet
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
25 server.serve_forever()