We needed to make a Web mapping application with security on sensible datasets. This could have been accomplished with multiple applications and by putting a standard login+password access to them, but the project was too big and it would have been very complex to maintain. Adding a new dataset for example would require modifications of each application manually, adjustments of the security, etc.
That’s why we decided to develop our own Web mapping application that included access control on datasets using the OpenSource Web mapping applications availables.
GeoPrisma is a Web mapping application featuring Access Control (Permissions) to geospacial data (Resources). A single Resource can be served by multiple different geodata servers (Services), such as WMS, TileCache, MapServer, FeatureServer, etc. Each combinaison of Service+Resource is called a DataStore. Theses Services, DataStore and Resources are defined in a configuration file. The communication to the Services is tunelled through a Proxy that is responsible of managing the Permissions, which correspond to a Role, a Resource and an Action.
GeoPrisma also provides a mechanism for adaptive UI generation. Each UI feature (Widget) is selectively included or not, depending on the Permission the Resource it’s linked to. Thereby, it allows the use of a single configuration file for all users in a project. The GeoPrisma UI wraps the features of the major FOSS JS libraries for mapping (OpenLayers, MapFish, GeoExt) and the Proxy can be easily made to interact with any geodata server.
In summary, the goals of GeoPrisma can be described in three major points :