-
Notifications
You must be signed in to change notification settings - Fork 2
Home
This repo contains the production code for NYU's Spatial Data Repository instance of GeoBlacklight 0.12.1
.
Prior to this repo, changes were being tracked (here).
Exemplified here. This checks to see if user is logged in via NYU, and if the layer being requested is set to Restricted
; when these conditions are met, the WMS endpoint URL for that layer is swapped with the EZproxy version of the URL. To accommodate EZproxy load balancing, login?url=
is used, which will redirect to the port allocated at any particular moment for traffic from GeoServer. Note that EZproxy is routing HTTPS traffic from maps-restricted
, but that the initial login url for EZproxy uses HTTP; this may cause your browser to complain on the first record loaded, but after the EZproxy connection is made, all traffic should flow via HTTPS.
As an example of how the rewriting works, consider a record for an NYU item that has "dc_rights_s":"Restricted"
- The WMS endpoint specified in the
dct_references_s
object of the original record is:https://maps-restricted.geo.nyu.edu/geoserver/sdr/wms
- If someone is logged in such that GeoBlacklight recognizes that they are from NYU, this URL will be replaced with:
https://ezproxy.library.nyu.edu/login?url=https://maps-restricted.geo.nyu.edu/geoserver/sdr/wms?
- This URL rewriting has to occur in a way that does not affect the XHR request made by the map feature-inspection tool, since that request is sent by the Rails server itself (and not from the user's browser); because the Rails server will not have an EZproxy session, it needs to send traffic to the unaltered URL (accordingly, we use this code to essentially go back to the original URL for the WMS feature inspector)
- This has now been pushed into GeoBlacklight master. See here.
- This has now been pushed into GeoBlacklight master. See here.
- This has now been pushed into GeoBlacklight master. See here.
All of this is done by hand so far. SCSS variables, images, stylesheet modifications can all be found in the repo.
The core GeoBlacklight application contains a hash table of URI constants that allow record references to be used. Since we wanted to expand the functionality of GeoBlacklight for a couple of our use-cases, I added in an initializer that merges local URI key/value pairs (specified in the Settings yaml) into the above URI hash table. This powers the ability to directly link to a codebook or piece of documentation, as well as to do some simple item relation modeling.