{"id":13397810,"url":"https://github.com/geops/geoserver-sec-drupal","last_synced_at":"2025-03-14T00:32:41.851Z","repository":{"id":4574308,"uuid":"5715891","full_name":"geops/geoserver-sec-drupal","owner":"geops","description":"Binds GeoServer to Drupal so that multiple Drupal instance can provide user and roles for GeoServer","archived":true,"fork":false,"pushed_at":"2020-04-24T21:24:31.000Z","size":99,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-07-31T18:23:39.209Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-09-07T11:22:33.000Z","updated_at":"2023-01-28T14:49:52.000Z","dependencies_parsed_at":"2022-09-01T13:10:32.879Z","dependency_job_id":null,"html_url":"https://github.com/geops/geoserver-sec-drupal","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geops%2Fgeoserver-sec-drupal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geops%2Fgeoserver-sec-drupal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geops%2Fgeoserver-sec-drupal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geops%2Fgeoserver-sec-drupal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geops","download_url":"https://codeload.github.com/geops/geoserver-sec-drupal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243505018,"owners_count":20301540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T18:01:46.473Z","updated_at":"2025-03-14T00:32:41.843Z","avatar_url":"https://github.com/geops.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"Drupal as user provider for GeoServer\n=====================================\nThis GeoServer extension allows to use any number of Drupal instances as user providers. The extension is part of the geospatial CMS Cartaro. See http://cartaro.org for details.\n\n[Download binaries](http://dl.geops.de/geoserver-sec-drupal/)\n\nInstallation\n============\nCopy the jar file of the desired version into ``geoserver/WEB-INF/lib/`` within your servlet container. In case you use Tomcat to run GeoServer the path will be similar to ``/var/lib/tomcat7/webapps/geoserver/WEB-INF/lib/``.\n\nGeoServer version \u003e2.2 (currently tested are 2.7.3 and 2.8.0) and Drupal 7 running on Postgres are required.\n\nConfiguration\n=============\nYou need to configure an *Authentication Provider* which is responsible for logging in users. Additionally you will also need to set up a *User Group Service* and a *Role Service*. Even though GeoServer does not couple these services you should bind all of these service types to Drupal in order to get users and roles from your Drupal instance.\n\nLog into GeoServer using your ``root`` user or another user with administrative privileges.\n\nClick *Authentication* in the left sidebar, then add a new *Authentication Provider*. Make sure to select type *Drupal* and fill in your details in the form that appears. Note that the service's name will be used as a prefix for users derived from Drupal. The provider needs to be selected for the provider chain in order to be used.\n\nNow open *Users, Groups and Roles* from the left sidebar. Add a new *User Group Service* of type *Drupal* and enter the same data as before. Select *plain text* as password encryption since Drupal hashes passwords itself. Make sure to use the same service name as for the *Authentication Provider*.\n\nFinally add a new *Role Service* of type *Drupal*. Choose whatever name you desire but ensure to set it as active role servie in ``geoserver/data/security/config.xml``.\n\nWorkings\n========\nGeoServer allows any number of active services for authentication and user/group listing at the same time. It does however only support one active role service at a time. Thus the role service for Drupal queries all user group services that belong to Drupal in row and aggregates their roles.\n\nThis leads to having exactly one role service in total and one authentication provider and one user-group service per Drupal instance.\n\nRoles and users from Drupal are currently read-only in GeoServer. Use the Drupal's GUI to create users, roles or to assign roles to users.\n\nPermission Mapping\n------------------\n\u003ctable\u003e\n\t\u003ctr\u003e\u003cth\u003eDrupal Permission, group GeoServer\u003c/th\u003e\u003cth\u003eGeoServer Permission\u003c/th\u003e\u003c/tr\u003e\n\t\u003ctr\u003e\u003ctd\u003e*Administer GeoServer*\u003c/td\u003e\u003ctd\u003eAdmin\u003c/td\u003e\u003c/tr\u003e\n\t\u003ctr\u003e\u003ctd\u003e*Edit any content*\u003c/td\u003e\u003ctd\u003eWrite\u003c/td\u003e\u003c/tr\u003e\n\t\u003ctr\u003e\u003ctd\u003e*View any content*\u003c/td\u003e\u003ctd\u003eView\u003c/td\u003e\n\u003c/table\u003e\nAll administrative permissions set by Drupal do only affect the workspace that is named as the Drupal binding in GeoServer. REST services are filtered based on the layer permissions.\n\nNote that Drupal requires *View published content* to be set even if a user is only about to view or create its own content. Edge-cases of the Drupal permission system that are not stored in the database are not necessarily honored by GeoServer – use permissions bound via roles instead.\n\nLicense\n=======\nCopyright (C) 2012  geOps e. K.\u003cbr\u003e\nhttps://www.geops.de/\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeops%2Fgeoserver-sec-drupal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeops%2Fgeoserver-sec-drupal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeops%2Fgeoserver-sec-drupal/lists"}