OpenLayers.ProxyHost

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

OpenLayers.ProxyHost

vinhez
Non riesco ad impostare OpenLayers.ProxyHost = "cgi-bin/proxy.cgi?url=";
non trovo nulla nemmeno sui forum,
qualcuno sa darmi qualche dritta?

in questa pagina vi posto l'errore

http://www.pianificazioneterritoriale.it/webgis/test13.html



Grazie



ecco invece il proxy.cgi:

#!/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',
                '<a href="http://95.110.171.18:8208'">http://95.110.171.18:8208',
                '<a href="http://95.110.171.18:80'">http://95.110.171.18:80',
                'http://95.110.171.18:8208/geoserver/vin/wms?',
                'http://95.110.171.18:80/geoserver/vin/wms?',
                '95.110.171.18:8208',
                '95.110.171.18:80',
                '95.110.171.18:8208/geoserver/vin/wms?',
                '95.110.171.18:80/geoserver/vin/wms?'
                ]

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
Reply | Threaded
Open this post in threaded view
|

Re: OpenLayers.ProxyHost

Paolo Corti
On Mon, May 27, 2013 at 9:38 AM, vinhez <[hidden email]> wrote:
> Non riesco ad impostare OpenLayers.ProxyHost = "cgi-bin/proxy.cgi?url=";
> non trovo nulla nemmeno sui forum,
> qualcuno sa darmi qualche dritta?
>
> in questa pagina vi posto l'errore
>
> http://www.pianificazioneterritoriale.it/webgis/test13.html
>

dalla pagina di cui hai riportato il link non si evincono errori,
pero' Apache da un Internal Server Error accedendo al tuo proxy.
Ti consiglio come prima cosa di controllare il log di Apache
ciao
p

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
638 iscritti al 28.2.2013
Reply | Threaded
Open this post in threaded view
|

Re: OpenLayers.ProxyHost

vinhez
Ho controllato il log errori di apache, l'unico errore ricorsivo è il seguente:

[Mon May 27 11:43:55 2013] [error] [client 195.130.213.9] File does
not exist: /web/htdocs/www.pianificazioneterritoriale.it/home/favicon.ico

Può essere un problema avere il dominio su server aruba e tomcat su un
altro host?
anche se in realtà lo stesso problema lo riscontro anche in locale.
Inoltre, la cosa strana, anche se il comando è differente (senza
proxy), e non dà problemi solo con le versioni vecchie di
openlayer.js, che in questo caso funziona:

http://www.pianificazioneterritoriale.it/webgis/test10.html

A me cmq interesserebbe risolvere il problema postato all'inizio.






Il 27 maggio 2013 11:30, Paolo Corti [via Gfoss -- Geographic Free and
Open Source Software - Italian mailing list]
<[hidden email]> ha scritto:

> On Mon, May 27, 2013 at 9:38 AM, vinhez <[hidden email]> wrote:
>> Non riesco ad impostare OpenLayers.ProxyHost = "cgi-bin/proxy.cgi?url=";
>> non trovo nulla nemmeno sui forum,
>> qualcuno sa darmi qualche dritta?
>>
>> in questa pagina vi posto l'errore
>>
>> http://www.pianificazioneterritoriale.it/webgis/test13.html
>>
>
> dalla pagina di cui hai riportato il link non si evincono errori,
> pero' Apache da un Internal Server Error accedendo al tuo proxy.
> Ti consiglio come prima cosa di controllare il log di Apache
> ciao
> p
>
> --
> Paolo Corti
> Geospatial software developer
> web: http://www.paolocorti.net
> twitter: @capooti
> skype: capooti
> _______________________________________________
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 638 iscritti al 28.2.2013
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/OpenLayers-ProxyHost-tp7582408p7582411.html
> To unsubscribe from OpenLayers.ProxyHost, click here.
> NAML



--
Vincenzo
Reply | Threaded
Open this post in threaded view
|

Re: OpenLayers.ProxyHost

Paolo Corti
2013/5/27 vinhez <[hidden email]>:
> Ho controllato il log errori di apache, l'unico errore ricorsivo è il
> seguente:
>
> [Mon May 27 11:43:55 2013] [error] [client 195.130.213.9] File does
> not exist: /web/htdocs/www.pianificazioneterritoriale.it/home/favicon.ico
>

No, quell'errore non c'entra nulla.
Sei sicuro che stai guardando il log giusto?
Perche' in caso di Internal Server Error Apache deve loggare
necessariamente qualcosa di piu' significativo.

ciao
p

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
638 iscritti al 28.2.2013
Reply | Threaded
Open this post in threaded view
|

Re: OpenLayers.ProxyHost

vinhez
Ho provato in locale, FUNZIONA!
Prima però ho dovuto copiare il file proxy.cgi in usr/lib/cgi-bin (su
ubuntu linux)
a questo punto la mia domanda è questa,
sapete se su hosting aruba è possibile configurare il proxy? oppure se
è possibile
farlo puntare su un altra cartella?

Il 27 maggio 2013 12:03, Paolo Corti [via Gfoss -- Geographic Free and
Open Source Software - Italian mailing list]
<[hidden email]> ha scritto:

> 2013/5/27 vinhez <[hidden email]>:
>> Ho controllato il log errori di apache, l'unico errore ricorsivo è il
>> seguente:
>>
>> [Mon May 27 11:43:55 2013] [error] [client 195.130.213.9] File does
>> not exist: /web/htdocs/www.pianificazioneterritoriale.it/home/favicon.ico
>>
>
> No, quell'errore non c'entra nulla.
> Sei sicuro che stai guardando il log giusto?
> Perche' in caso di Internal Server Error Apache deve loggare
> necessariamente qualcosa di piu' significativo.
>
> ciao
> p
>
> --
> Paolo Corti
> Geospatial software developer
> web: http://www.paolocorti.net
> twitter: @capooti
> skype: capooti
> _______________________________________________
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 638 iscritti al 28.2.2013
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/OpenLayers-ProxyHost-tp7582408p7582413.html
> To unsubscribe from OpenLayers.ProxyHost, click here.
> NAML



--
Vincenzo
Reply | Threaded
Open this post in threaded view
|

Re: OpenLayers.ProxyHost

Paolo Corti
2013/5/27 vinhez <[hidden email]>:
> Ho provato in locale, FUNZIONA!
> Prima però ho dovuto copiare il file proxy.cgi in usr/lib/cgi-bin (su
> ubuntu linux)
> a questo punto la mia domanda è questa,
> sapete se su hosting aruba è possibile configurare il proxy? oppure se
> è possibile
> farlo puntare su un altra cartella?
>

Dubito fortemente che aruba te lo faccia fare.
Pero' puoi sempre farti un tuo script analogo con funzionalita' di
proxy (ad es usando php, supportato da Aruba), non e' necessario che
venga lanciato come script cgi.
ciao
p

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
638 iscritti al 28.2.2013
Reply | Threaded
Open this post in threaded view
|

Re: OpenLayers.ProxyHost

vinhez
Ottima idea, ma non ho garnde dimestichezza,
sai se in rete esistono degli script in php che convertono quello script.cgi

Il 27 maggio 2013 16:52, Paolo Corti [via Gfoss -- Geographic Free and
Open Source Software - Italian mailing list]
<[hidden email]> ha scritto:

> 2013/5/27 vinhez <[hidden email]>:
>> Ho provato in locale, FUNZIONA!
>> Prima però ho dovuto copiare il file proxy.cgi in usr/lib/cgi-bin (su
>> ubuntu linux)
>> a questo punto la mia domanda è questa,
>> sapete se su hosting aruba è possibile configurare il proxy? oppure se
>> è possibile
>> farlo puntare su un altra cartella?
>>
>
> Dubito fortemente che aruba te lo faccia fare.
> Pero' puoi sempre farti un tuo script analogo con funzionalita' di
> proxy (ad es usando php, supportato da Aruba), non e' necessario che
> venga lanciato come script cgi.
> ciao
> p
>
> --
> Paolo Corti
> Geospatial software developer
> web: http://www.paolocorti.net
> twitter: @capooti
> skype: capooti
> _______________________________________________
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 638 iscritti al 28.2.2013
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/OpenLayers-ProxyHost-tp7582408p7582421.html
> To unsubscribe from OpenLayers.ProxyHost, click here.
> NAML



--
Vincenzo
Reply | Threaded
Open this post in threaded view
|

Re: OpenLayers.ProxyHost

Paolo Corti
2013/5/27 vinhez <[hidden email]>:
> Ottima idea, ma non ho garnde dimestichezza,
> sai se in rete esistono degli script in php che convertono quello script.cgi
>

cercando "php proxy.cgi openlayers" su google questo e' uno dei primi risultati:
http://gis.stackexchange.com/questions/56829/how-to-configure-wfs-layer-with-openlayer-in-php-wampserver-with-windows

ciao
p

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
638 iscritti al 28.2.2013
Reply | Threaded
Open this post in threaded view
|

Re: OpenLayers.ProxyHost

vinhez
Ok gentilissimo.

io leggevo questo:

http://khayer.wordpress.com/2010/07/14/open-layer-with-geosever/

può essere un utile guida, una volta risolto ciò posterò il tutto..

2013/5/27 Paolo Corti [via Gfoss -- Geographic Free and Open Source
Software - Italian mailing list]
<[hidden email]>:

> 2013/5/27 vinhez <[hidden email]>:
>> Ottima idea, ma non ho garnde dimestichezza,
>> sai se in rete esistono degli script in php che convertono quello
>> script.cgi
>>
>
> cercando "php proxy.cgi openlayers" su google questo e' uno dei primi
> risultati:
> http://gis.stackexchange.com/questions/56829/how-to-configure-wfs-layer-with-openlayer-in-php-wampserver-with-windows
>
> ciao
> p
>
> --
> Paolo Corti
> Geospatial software developer
> web: http://www.paolocorti.net
> twitter: @capooti
> skype: capooti
> _______________________________________________
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 638 iscritti al 28.2.2013
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/OpenLayers-ProxyHost-tp7582408p7582424.html
> To unsubscribe from OpenLayers.ProxyHost, click here.
> NAML



--
Vincenzo
Reply | Threaded
Open this post in threaded view
|

Re: OpenLayers.ProxyHost

vinhez
ok ci sono riuscito..
però funziona solo a momenti, poi si blocca, perchè?
non riesco a capire, il codice .php parrebbe funzionare.


http://www.pianificazioneterritoriale.it/webgis/test16.html


Ecco lo script proxy.php usato:

<?php
/*
License: LGPL as per: http://www.gnu.org/copyleft/lesser.html
$Id: proxy.php 3650 2007-11-28 00:26:06Z rdewit $
$Name$
*/

////////////////////////////////////////////////////////////////////////////////
// Description:
// Script to redirect the request http://host/proxy.php?url=http://someUrl
// to http://someUrl .
//
// This script can be used to circumvent javascript's security requirements
// which prevent a URL from an external web site being called.
//
// Author: Nedjo Rogers
////////////////////////////////////////////////////////////////////////////////

// read in the variables

if(array_key_exists('HTTP_SERVERURL', $_SERVER)){
  $onlineresource=$_SERVER['HTTP_SERVERURL'];
}else{
  $onlineresource=$_REQUEST['url'];
}
$parsed = parse_url($onlineresource);
$host = @$parsed["host"];
$path = @$parsed["path"] . "?" . @$parsed["query"];
if(empty($host)) {
  $host = "localhost";
}
$port = @$parsed['port'];
if(empty($port)){
  $port="80";
}
$contenttype = @$_REQUEST['contenttype'];
if(empty($contenttype)) {
  $contenttype = "text/xml";
}
$data = @$GLOBALS["HTTP_RAW_POST_DATA"];
// define content type
header("Content-type: " . $contenttype);

if(empty($data)) {
  $result = send_request();
}
else {
  // post XML
  $posting = new HTTP_Client($host, $port, $data);
  $posting->set_path($path);
  $result = $posting->send_request();
}

// strip leading text from result and output result
$len=strlen($result);
$pos = strpos($result, "<");
if($pos > 1) {
  $result = substr($result, $pos, $len);
}
//$result = str_replace("xlink:","",$result);
echo $result;

// define class with functions to open socket and post XML
// from http://www.phpbuilder.com/annotate/message.php3?id=1013274 by
Richard Hundt

class HTTP_Client {
  var $host;
  var $path;
  var $port;
  var $data;
  var $socket;
  var $errno;
  var $errstr;
  var $timeout;
  var $buf;
  var $result;
  var $agent_name = "MyAgent";
  //Constructor, timeout 30s
  function HTTP_Client($host, $port, $data, $timeout = 30) {
    $this->host = $host;
    $this->port = $port;
    $this->data = $data;
    $this->timeout = $timeout;
  }

  //Opens a connection
  function connect() {
    $this->socket = fsockopen($this->host,
      $this->port,
      $this->errno,
      $this->errstr,
      $this->timeout
      );
    if(!$this->socket)
      return false;
    else
      return true;
  }

  //Set the path
  function set_path($path) {
    $this->path = $path;
  }

  //Send request and clean up
  function send_request() {
    if(!$this->connect()) {
      return false;
    }
    else {
      $this->result = $this->request($this->data);
      return $this->result;
    }
  }

  function request($data) {
    $this->buf = "";
    fwrite($this->socket,
      "POST $this->path HTTP/1.0\r\n".
      "Host:$this->host\r\n".
      "User-Agent: $this->agent_name\r\n".
      "Content-Type: application/xml\r\n".
      "Content-Length: ".strlen($data).
      "\r\n".
      "\r\n".$data.
      "\r\n"
    );

    while(!feof($this->socket))
      $this->buf .= fgets($this->socket, 2048);
      $this->close();
      return $this->buf;
  }


  function close() {
    fclose($this->socket);
  }
}



function send_request() {
  global $onlineresource;
  $ch = curl_init();
  $timeout = 5; // set to zero for no timeout

  // fix to allow HTTPS connections with incorrect certificates
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

  curl_setopt ($ch, CURLOPT_URL,$onlineresource);
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  curl_setopt ($ch, CURLOPT_ENCODING , "gzip, deflate");

  $file_contents = curl_exec($ch);
  curl_close($ch);
  $lines = array();
  $lines = explode("\n", $file_contents);
  if(!($response = $lines)) {
    echo "Unable to retrieve file '$service_request'";
  }
  $response = implode("",$response);
  return $response;
}
?>

2013/5/27 vinhez <[hidden email]>:

> Ok gentilissimo.
>
> io leggevo questo:
>
> http://khayer.wordpress.com/2010/07/14/open-layer-with-geosever/
>
> può essere un utile guida, una volta risolto ciò posterò il tutto..
>
> 2013/5/27 Paolo Corti [via Gfoss -- Geographic Free and Open Source
> Software - Italian mailing list]
> <[hidden email]>:
>
>> 2013/5/27 vinhez <[hidden email]>:
>>> Ottima idea, ma non ho garnde dimestichezza,
>>> sai se in rete esistono degli script in php che convertono quello
>>> script.cgi
>>>
>>
>> cercando "php proxy.cgi openlayers" su google questo e' uno dei primi
>> risultati:
>>
>> http://gis.stackexchange.com/questions/56829/how-to-configure-wfs-layer-with-openlayer-in-php-wampserver-with-windows
>>
>> ciao
>> p
>>
>> --
>> Paolo Corti
>> Geospatial software developer
>> web: http://www.paolocorti.net
>> twitter: @capooti
>> skype: capooti
>> _______________________________________________
>> [hidden email]
>> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>> Questa e' una lista di discussione pubblica aperta a tutti.
>> I messaggi di questa lista non hanno relazione diretta con le posizioni
>> dell'Associazione GFOSS.it.
>> 638 iscritti al 28.2.2013
>>
>> ________________________________
>> If you reply to this email, your message will be added to the discussion
>> below:
>>
>> http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/OpenLayers-ProxyHost-tp7582408p7582424.html
>
>> To unsubscribe from OpenLayers.ProxyHost, click here.
>> NAML
>
>
>
> --
> Vincenzo
>
> ________________________________
> View this message in context: Re: OpenLayers.ProxyHost
> Sent from the Gfoss -- Geographic Free and Open Source Software - Italian
> mailing list mailing list archive at Nabble.com.
>
> _______________________________________________
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 638 iscritti al 28.2.2013



--
Vincenzo
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
638 iscritti al 28.2.2013