[Community] cookies and OWSlib
Dominic Lowe
dominic.lowe at stfc.ac.uk
Tue Apr 26 17:45:57 EEST 2011
Hi David,
I'd be very happy to see that patch - I'm sure there are other
circumstances when cookies would be useful in OWSLib.
Am I right in thinking your current patch does not support http
password/username logon? I think that's pretty important to maintain as
that was a requirement from some other users.
Otherwise I'm pretty happy for you to suggest a patch. Tom Kralidis may
have more comments as he has been most active on OWSLib recently.
Regards,
Dominic
On 25/04/11 19:07, dwinslow at opengeo.org wrote:
> Hi all,
>
> I work on GeoNode (http://geonode.org/). We're using OWSLib to fetch data from GeoNetwork. Recently I've discovered that due to the way GeoNetwork handles sessions, it makes a big difference for us to include HTTP cookies on our service requests (without them, GeoNetwork creates a new session for each service request and eventually locks up after running out of RAM.)
>
> Therefore I would like to modify owslib to use a (persistent) instance of urllib2.HTTPCookieProcessor when opening URLs, one which I can get a reference to so that I can log in to GeoNetwork and have owslib use the session cookie. Ideally, there would be a way to provide my own instance of urllib2.OpenerDirector which I can customize as needed.
>
> I am currently using a monkey patch to fix this behavior, but it's not the way I'd like to do things (you can see the diff in GeoNode here: https://github.com/dwins/geonode/compare/master...csw-cookies ).
>
> For a deeper fix I see basically 3 options:
>
> 1) Use Python's urllib2.install_opener to set a default opener instance to use, and be careful not to pass arguments into owslib methods that would cause them to create their own openers (for example, including a username and password in a call to owslib.util.openURL).
> 2) Create a module-level variable (owslib.util.opener) and modify owslib.util.openURL and owslib.util.http_post to reference it exclusively. Then client code which needs to modify the HTTP handling behavior can simply replace this variable.
> 3) Make each client class (ie, owslib.csw.CatalogueServiceWeb) use its own opener instance which may be provided by client code.
>
> The attached patch is a partial implementation of approach #3. (In each of these cases there is the question of how to handle the username/password arguments to owslib.util.openURL, I haven't addressed this.)
>
> Is this sort of thing something the OWSLib community would be interested in incorporating? If so I'm happy to update this patch to incorporate feedback etc.
>
> --
> David Winslow
> OpenGeo - http://opengeo.org/
>
--
Scanned by iCritical.
More information about the Community
mailing list