summaryrefslogtreecommitdiff
path: root/misc/openlayers/examples/proxy.cgi
diff options
context:
space:
mode:
Diffstat (limited to 'misc/openlayers/examples/proxy.cgi')
-rwxr-xr-xmisc/openlayers/examples/proxy.cgi81
1 files changed, 0 insertions, 81 deletions
diff --git a/misc/openlayers/examples/proxy.cgi b/misc/openlayers/examples/proxy.cgi
deleted file mode 100755
index 1d2818f..0000000
--- a/misc/openlayers/examples/proxy.cgi
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env python
-
-
-"""This is a blind proxy that we use to get around browser
-restrictions that prevent the Javascript from loading pages not on the
-same server as the Javascript. This has several problems: it's less
-efficient, it might break some sites, and it's a security risk because
-people can use this proxy to browse the web and possibly do bad stuff
-with it. It only loads pages via http and https, but it can load any
-content type. It supports GET and POST requests."""
-
-import urllib2
-import cgi
-import sys, os
-
-# Designed to prevent Open Proxy type stuff.
-
-allowedHosts = ['www.openlayers.org', 'openlayers.org',
- 'labs.metacarta.com', 'world.freemap.in',
- 'prototype.openmnnd.org', 'geo.openplans.org',
- 'sigma.openplans.org', 'demo.opengeo.org',
- 'www.openstreetmap.org', 'sample.azavea.com',
- 'v2.suite.opengeo.org', 'v-swe.uni-muenster.de:8080',
- 'vmap0.tiles.osgeo.org', 'www.openrouteservice.org',
- 'maps.wien.gv.at']
-
-method = os.environ["REQUEST_METHOD"]
-
-if method == "POST":
- qs = os.environ["QUERY_STRING"]
- d = cgi.parse_qs(qs)
- if d.has_key("url"):
- url = d["url"][0]
- else:
- url = "http://www.openlayers.org"
-else:
- fs = cgi.FieldStorage()
- url = fs.getvalue('url', "http://www.openlayers.org")
-
-try:
- host = url.split("/")[2]
- if allowedHosts and not host in allowedHosts:
- print "Status: 502 Bad Gateway"
- print "Content-Type: text/plain"
- print
- print "This proxy does not allow you to access that location (%s)." % (host,)
- print
- print os.environ
-
- elif url.startswith("http://") or url.startswith("https://"):
-
- if method == "POST":
- length = int(os.environ["CONTENT_LENGTH"])
- headers = {"Content-Type": os.environ["CONTENT_TYPE"]}
- body = sys.stdin.read(length)
- r = urllib2.Request(url, body, headers)
- y = urllib2.urlopen(r)
- else:
- y = urllib2.urlopen(url)
-
- # print content type header
- i = y.info()
- if i.has_key("Content-Type"):
- print "Content-Type: %s" % (i["Content-Type"])
- else:
- print "Content-Type: text/plain"
- print
-
- print y.read()
-
- y.close()
- else:
- print "Content-Type: text/plain"
- print
- print "Illegal request."
-
-except Exception, E:
- print "Status: 500 Unexpected Error"
- print "Content-Type: text/plain"
- print
- print "Some unexpected error occurred. Error text was:", E