[GeoNode-users] geonode-users Digest, Vol 40, Issue 49
Joseph AGOUZE
josephagouze36 at gmail.com
Wed May 23 11:20:38 PDT 2018
Hi, I am a new user of Geonode and I downloaded the .exe version on windows
that I installed for 2 days. But impossible to run the application. Thank
you kindly give me a push
Le mer. 23 mai 2018 à 17:41, <geonode-users-request at lists.osgeo.org> a
écrit :
> Send geonode-users mailing list submissions to
> geonode-users at lists.osgeo.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.osgeo.org/mailman/listinfo/geonode-users
> or, via email, send a message with subject or body 'help' to
> geonode-users-request at lists.osgeo.org
>
> You can reach the person managing the list at
> geonode-users-owner at lists.osgeo.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of geonode-users digest..."
>
>
> Today's Topics:
>
> 1. Error on uploading (GeoServer response with 403)
> (Watermeyer, Andreas)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 23 May 2018 16:35:21 +0000
> From: "Watermeyer, Andreas" <Andreas.Watermeyer at its-digital.de>
> To: "geonode-users at lists.osgeo.org" <geonode-users at lists.osgeo.org>
> Subject: [GeoNode-users] Error on uploading (GeoServer response with
> 403)
> Message-ID: <e13ba7dbd16d4420b6bb84ba9752fa58 at its-digital.de>
> Content-Type: text/plain; charset="iso-8859-1"
>
>
> Hi all,
>
> I am new to GeoNode and I have a problem with uploading shapefiles.
>
> Environment: CentOS 7, GeoNode 2.8, installation according to "GeoNode
> (v2.8) installation on CentOS 7", with a couple of tweaks to make it work:
>
> http://docs.geonode.org/en/master/tutorials/install_and_admin/setup_on_centos/index.html
>
> Initially uploads were possible. But maps where broken, because GeoNode is
> not running on localhost. Then I adjusted the siteurl and the related
> parameters. Maps are working now, but the uploads are broken. Apparently I
> am not able to fully revert the changes for testing purposes; the uploads
> remain broken.
>
> Problem:
> "Unespected error!" when uploading a shapefile using the GeoNode "Upload
> Layer" wizard.
>
> Logs files: See below.
>
> What I found out:
> This GeoNode request to GeoServer results in a 403:
> 10.11.202.130 - - [23/May/2018:18:06:15 +0200] "PUT
> /geoserver/rest/imports/51/tasks/0/target HTTP/1.1" 403 997 "-"
> "Python-httplib2/0.10.3 (gzip)"
>
> According to the GeoNode docs the communication between GeoNode and
> GeoServer is using Basic Authentication. However this request contains no
> Basic Auth headers, see attached Apache Forensic Logs.
>
> GeoNode uses httplib2 to issue the HTTP request and it is configured using
> the required username and password. But apparently httplib requires an 401
> response from the server first, otherwise it will not send the credentials:
> https://github.com/httplib2/httplib2/issues/16
>
> But GeoServer does not send a 401 but 403. If I tweak the GeoNode code and
> send the Basic Authentication header manually along with the request
> everything works fine.
>
> I suppose this is a side effect of a broken configuration but I have no
> idea where to look. I have double checked many config files in GeoServer
> and GeoNode and replaced localhost with the real hostname. Also recreated
> the oauth conf using an adapted version of the Ubuntu updateip-script etc.
>
> Any hints are much appreciated!
>
>
> Best regards,
> Andreas
>
> ----- Apache Log Errror Log -------
> [Wed May 23 11:06:15.168589 2018] [:error] [pid 12859] Traceback (most
> recent call last):
> [Wed May 23 11:06:15.168604 2018] [:error] [pid 12859] File
> "/opt/gdi/geonode/geonode/geonode/upload/views.py", line 643, in view
> [Wed May 23 11:06:15.168608 2018] [:error] [pid 12859] resp =
> _steps[step](req, upload_session)
> [Wed May 23 11:06:15.168611 2018] [:error] [pid 12859] File
> "/opt/gdi/geonode/geonode/geonode/upload/views.py", line 417, in
> check_step_view
> [Wed May 23 11:06:15.168614 2018] [:error] [pid 12859] return
> next_step_response(request, upload_session)
> [Wed May 23 11:06:15.168616 2018] [:error] [pid 12859] File
> "/opt/gdi/geonode/geonode/geonode/upload/utils.py", line 377, in
> next_step_response
> [Wed May 23 11:06:15.168619 2018] [:error] [pid 12859] return
> run_response(req, upload_session)
> [Wed May 23 11:06:15.168622 2018] [:error] [pid 12859] File
> "/opt/gdi/geonode/geonode/geonode/upload/utils.py", line 618, in
> run_response
> [Wed May 23 11:06:15.168624 2018] [:error] [pid 12859]
> run_import(upload_session)
> [Wed May 23 11:06:15.168627 2018] [:error] [pid 12859] File
> "/opt/gdi/geonode/geonode/geonode/upload/utils.py", line 590, in run_import
> [Wed May 23 11:06:15.168629 2018] [:error] [pid 12859] task.set_target(
> target.name, target.workspace.name)
> [Wed May 23 11:06:15.168632 2018] [:error] [pid 12859] File
> "/opt/gdi/geonode/geonode-virtualenv/lib/python2.7/site-packages/gsimporter/api.py",
> line 285, in set_target
> [Wed May 23 11:06:15.168642 2018] [:error] [pid 12859]
> self.target.change_datastore(store_name, workspace)
> [Wed May 23 11:06:15.168645 2018] [:error] [pid 12859] File
> "/opt/gdi/geonode/geonode-virtualenv/lib/python2.7/site-packages/gsimporter/api.py",
> line 211, in change_datastore
> [Wed May 23 11:06:15.168649 2018] [:error] [pid 12859]
> self._client().put_json(self.href,json.dumps(target_rep))
> [Wed May 23 11:06:15.168651 2018] [:error] [pid 12859] File
> "/opt/gdi/geonode/geonode-virtualenv/lib/python2.7/site-packages/gsimporter/client.py",
> line 149, in put_json
> [Wed May 23 11:06:15.168654 2018] [:error] [pid 12859] "Content-type"
> : "application/json",
> [Wed May 23 11:06:15.168657 2018] [:error] [pid 12859] File
> "/opt/gdi/geonode/geonode-virtualenv/lib/python2.7/site-packages/gsimporter/client.py",
> line 176, in _request
> [Wed May 23 11:06:15.168660 2018] [:error] [pid 12859] raise
> RequestFailed(resp.status,content)
> [Wed May 23 11:06:15.168664 2018] [:error] [pid 12859] RequestFailed:
> (403, '<html><head><title>Apache Tomcat/7.0.76 - Error
> report</title><style><!--H1
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
> H2
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}
> H3
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}
> BODY
> {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;}
> P
> {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A
> {color : black;}A.name {color : black;}HR {color : #525D76;}--></style>
> </head><body><h1>HTTP Status 403 - Zugriff verweigert</h1><HR size="1"
> noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b>
> <u>Zugriff verweigert</u></p><p><b>description</b> <u>Access to the
> specified resource has been forbidden.</u></p><HR size="1"
> noshade="noshade"><h3>Apache Tomcat/7.0.76</h3></body></html>')
>
> ------------ Apache Access Log ----------
>
> 10.11.202.130 - - [23/May/2018:18:06:13 +0200] "GET
> /geoserver/rest/imports/50/tasks/0/progress HTTP/1.1" 200 43 "-"
> "Python-httplib2/0.10.3 (gzip)"
> 10.11.100.215 - - [23/May/2018:18:06:13 +0200] "GET /upload/progress?id=50
> HTTP/1.1" 200 18 "http://myhost.local/layers/upload" "Mozilla/5.0
> (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
> Chrome/66.0.3359.181 Safari/537.36"
> 10.11.202.130 - - [23/May/2018:18:06:13 +0200] "GET /api/users/admin
> HTTP/1.1" 200 68 "-" "Apache-HttpClient/4.5.1 (Java/1.8.0_171)"
> 10.11.202.130 - - [23/May/2018:18:06:13 +0200] "GET /api/roles HTTP/1.1"
> 200 34 "-" "Apache-HttpClient/4.5.1 (Java/1.8.0_171)"
> 10.11.202.130 - - [23/May/2018:18:06:13 +0200] "GET /api/roles HTTP/1.1"
> 200 34 "-" "Apache-HttpClient/4.5.1 (Java/1.8.0_171)"
> 10.11.202.130 - - [23/May/2018:18:06:13 +0200] "GET /api/roles HTTP/1.1"
> 200 34 "-" "Apache-HttpClient/4.5.1 (Java/1.8.0_171)"
> 10.11.100.215 - - [23/May/2018:18:06:13 +0200] "POST /upload/ HTTP/1.1"
> 200 112 "http://myhost.local/layers/upload" "Mozilla/5.0 (Windows NT
> 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
> Chrome/66.0.3359.181 Safari/537.36"
> 10.11.100.215 - - [23/May/2018:18:06:14 +0200] "GET
> /upload/srs?id=51&force_ajax=true HTTP/1.1" 200 114 "
> http://myhost.local/layers/upload" "Mozilla/5.0 (Windows NT 10.0; Win64;
> x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181
> Safari/537.36"
> 10.11.202.130 - - [23/May/2018:18:06:15 +0200] "PUT
> /geoserver/rest/imports/51/tasks/0/target HTTP/1.1" 403 997 "-"
> "Python-httplib2/0.10.3 (gzip)"
>
> ------ geoserver Logs -----------
> 2018-05-23 16:06:15,132 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of
> request : 'Path: /rest/imports/51/tasks/0/target, QueryString: null';
> against '/j_spring_oauth2_geonode_login'
> 2018-05-23 16:06:15,132 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of
> request : 'Path: /rest/imports/51/tasks/0/target, QueryString: null';
> against '/j_spring_oauth2_geonode_login/'
> 2018-05-23 16:06:15,132 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of
> request : 'Path: /rest/imports/51/tasks/0/target, QueryString: null';
> against '/j_spring_security_logout'
> 2018-05-23 16:06:15,132 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of
> request : 'Path: /rest/imports/51/tasks/0/target, QueryString: null';
> against '/j_spring_security_logout/'
> 2018-05-23 16:06:15,132 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of
> request : 'Path: /rest/imports/51/tasks/0/target, QueryString: null';
> against '/j_spring_oauth2_geonode_logout'
> 2018-05-23 16:06:15,132 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of
> request : 'Path: /rest/imports/51/tasks/0/target, QueryString: null';
> against '/j_spring_oauth2_geonode_logout/'
> 2018-05-23 16:06:15,132 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of
> request : 'Path: /rest/imports/51/tasks/0/target, QueryString: null';
> against '/rest/**'
> 2018-05-23 16:06:15,132 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Matched Path:
> /rest/imports/51/tasks/0/target, QueryString: null with /rest/**
> 2018-05-23 16:06:15,158 DEBUG [geoserver.security] - Inspecting the http
> request looking for the GeoNode Session ID.
> 2018-05-23 16:06:15,158 DEBUG [geoserver.security] - Found no cookies!
> 2018-05-23 16:06:15,158 DEBUG [geoserver.security] -
> preAuthenticatedPrincipal = null, trying to authenticate
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Converted URL to
> lowercase, from: '/rest/imports/51/tasks/0/target'; to:
> '/rest/imports/51/tasks/0/target' and httpMethod= PUT
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - ~~~~~~~~~~
> antPath= /rest/process/batchdownload/download/* methodList= [GET]
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Candidate is:
> '/rest/imports/51/tasks/0/target'; antPath is
> /rest/process/batchdownload/download/*; matchedPath=false;
> matchedMethods=false
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - ~~~~~~~~~~
> antPath= /rest/printing/* methodList= [GET, POST]
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Candidate is:
> '/rest/imports/51/tasks/0/target'; antPath is /rest/printing/*;
> matchedPath=false; matchedMethods=false
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - ~~~~~~~~~~
> antPath= /** methodList= [GET]
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Candidate is:
> '/rest/imports/51/tasks/0/target'; antPath is /**; matchedPath=true;
> matchedMethods=false
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - ~~~~~~~~~~
> antPath= /** methodList= [POST, DELETE, PUT]
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - Candidate is:
> '/rest/imports/51/tasks/0/target'; antPath is /**; matchedPath=true;
> matchedMethods=true
> 2018-05-23 16:06:15,159 DEBUG
> [security.RESTfulPathBasedFilterInvocationDefinitionMap] - returning
> ROLE_ADMINISTRATOR
> 2018-05-23 16:06:15,159 DEBUG
> [filter.GeoServerSecurityContextPersistenceFilter$1] -
> SecurityContextHolder now cleared, as request processing completed
> 2018-05-23 16:06:37,890 DEBUG [geoserver.security] - AuthenticationCache
> Eviction task running
> 2018-05-23 16:06:37,891 DEBUG [geoserver.security] - Cache entries #: 1
> 2018-05-23 16:06:37,891 DEBUG [geoserver.security] - AuthenticationCache
> Eviction task completed
> 2018-05-23 16:06:37,891 DEBUG [geoserver.security] - Cache entries #: 1
> 2018-05-23 16:06:46,790 DEBUG [geoserver.wps] - Removing statuses matching
> [[[ NOT [ completionTime IS NULL ] ] AND
> org.geotools.filter.temporal.BeforeImpl at 3fe5cc15] AND [[ NOT [
> lastUpdated IS NULL ] ] AND org.geotools.filter.temporal.BeforeImpl at 3ae17701
> ]]
> 2018-05-23 16:07:46,791 DEBUG [geoserver.wps] - Removing statuses matching
> [[[ NOT [ completionTime IS NULL ] ] AND
> org.geotools.filter.temporal.BeforeImpl at 440106f5] AND [[ NOT [
> lastUpdated IS NULL ] ] AND org.geotools.filter.temporal.BeforeImpl at 3efcb1e1
> ]]
>
> ------ Apache Forensic Logs -------------
> +WwWRdb9KGjJnr-C8P4dlvQAAAAc|GET /api/users/admin
> HTTP/1.1|Host:myhost.local|Connection:Keep-Alive|User-Agent:Apache-HttpClient/4.5.1
> (Java/1.8.0_171)|Accept-Encoding:gzip,deflate
> -WwWRdcvNymUGf1Y2uJyl3gAAAAQ
> -WwWRdTtXhtCEmXsif6wu9QAAAAA
> -WwWRdb9KGjJnr-C8P4dlvQAAAAc
> +WwWRdb9KGjJnr-C8P4dlvgAAAAc|GET /api/roles
> HTTP/1.1|Host:myhost.local|Connection:Keep-Alive|User-Agent:Apache-HttpClient/4.5.1
> (Java/1.8.0_171)|Accept-Encoding:gzip,deflate
> -WwWRdb9KGjJnr-C8P4dlvgAAAAc
> +WwWRdb9KGjJnr-C8P4dlvwAAAAc|GET /api/roles
> HTTP/1.1|Host:myhost.local|Connection:Keep-Alive|User-Agent:Apache-HttpClient/4.5.1
> (Java/1.8.0_171)|Accept-Encoding:gzip,deflate
> -WwWRdb9KGjJnr-C8P4dlvwAAAAc
> +WwWRdb9KGjJnr-C8P4dlwAAAAAc|GET /api/roles
> HTTP/1.1|Host:myhost.local|Connection:Keep-Alive|User-Agent:Apache-HttpClient/4.5.1
> (Java/1.8.0_171)|Accept-Encoding:gzip,deflate
> -WwWRdb9KGjJnr-C8P4dlwAAAAAc
> -WwWRdeA-J21YttgLDfeNPAAAAAI
> +WwWRduA-J21YttgLDfeNPQAAAAI|GET /upload/srs?id=51&force_ajax=true
> HTTP/1.1|Host:myhost.local|Accept:*/*|X-Requested-With:XMLHttpRequest|User-Agent:Mozilla/5.0
> (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHT
> ML, like Gecko) Chrome/66.0.3359.181
> Safari/537.36|Referer:http%3a//myhost.local/layers/upload|Accept-Encoding:gzip,
> deflate|Accept-Language:de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7|Cookie:csrftoken=gTCyxBP1jPafdvuoD4y
> b7iIixtXdmHNi;
> sessionid=xqm2ssjmclf7sk8r0la1gi31gps850d6|Connection:keep-alive
> -WwWRduA-J21YttgLDfeNPQAAAAI
> +WwWRduA-J21YttgLDfeNPgAAAAI|GET /upload/check?id=51&force_ajax=true
> HTTP/1.1|Host:myhost.local|Accept:*/*|X-Requested-With:XMLHttpRequest|User-Agent:Mozilla/5.0
> (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (K
> HTML, like Gecko) Chrome/66.0.3359.181
> Safari/537.36|Referer:http%3a//myhost.local/layers/upload|Accept-Encoding:gzip,
> deflate|Accept-Language:de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7|Cookie:csrftoken=gTCyxBP1jPafdvuoD
> 4yb7iIixtXdmHNi;
> sessionid=xqm2ssjmclf7sk8r0la1gi31gps850d6|Connection:keep-alive
> +WwWRd4Jc7dBshm8NrAoivwAAAAE|PUT /geoserver/rest/imports/51/tasks/0/target
> HTTP/1.1|Host:myhost.local|Content-Length:87|content-type:application/json|accept-encoding:gzip,
> deflate|user-agent:Python-httplib2/0.10.3 (gzip)
> -WwWRd4Jc7dBshm8NrAoivwAAAAE
> -WwWRduA-J21YttgLDfeNPgAAAAI
>
> ---------- local_settings.py ----------
>
> # -*- coding: utf-8 -*-
> #########################################################################
> #
> # Copyright (C) 2018 OSGeo
> #
> # This program is free software: you can redistribute it and/or modify
> # it under the terms of the GNU General Public License as published by
> # the Free Software Foundation, either version 3 of the License, or
> # (at your option) any later version.
> #
> # This program is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY; without even the implied warranty of
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> # GNU General Public License for more details.
> #
> # You should have received a copy of the GNU General Public License
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
> #
> #########################################################################
>
> import os
> from geonode.settings import *
>
> PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
>
> MEDIA_ROOT = os.getenv('MEDIA_ROOT', os.path.join(PROJECT_ROOT,
> "uploaded"))
>
> STATIC_ROOT = os.getenv('STATIC_ROOT',
> os.path.join(PROJECT_ROOT, "static_root")
> )
>
> # SECRET_KEY = '************************'
>
> SITEURL = "http://myhost.local/"
> #SITEURL = "http://localhost/"
>
> ALLOWED_HOSTS = ['127.0.0.1', 'localhost', '::1', 'myhost.local']
> PROXY_ALLOWED_HOSTS = ("127.0.0.1", 'localhost', '::1', 'myhost.local' )
> POSTGIS_VERSION = (2, 4, 0)
>
> # TIME_ZONE = 'Europe/Paris'
>
> DATABASES = {
> 'default': {
> 'ENGINE': 'django.db.backends.postgresql_psycopg2',
> # "default" and "data" use the same DB but different schemas.
> # each user "gdi" and "geonode" has a corresponding DB
> "search_path".
> #'OPTIONS': {
> # 'options': '-c search_path=geonode,public'
> # },
> 'NAME': 'gdi',
> 'USER': 'geonode',
> 'PASSWORD': 'geonode',
> 'HOST': 'localhost',
> 'PORT': '5432',
> 'CONN_TOUT': 900,
> },
> # vector datastore for uploads
> 'datastore': {
> 'ENGINE': 'django.contrib.gis.db.backends.postgis',
> #'OPTIONS': {
> # 'options': '-c search_path=gdi,public'
> #},
> 'NAME': 'gdi',
> 'USER': 'gdi',
> 'PASSWORD': 'gdi',
> 'HOST': 'localhost',
> 'PORT': '5432',
> 'CONN_TOUT': 900,
> }
> }
>
> GEOSERVER_LOCATION = os.getenv(
> 'GEOSERVER_LOCATION', 'http://localhost:8080/geoserver/'
> )
>
> GEOSERVER_PUBLIC_LOCATION = os.getenv(
> # 'GEOSERVER_PUBLIC_LOCATION', '{}/geoserver/'.format(SITEURL)
> 'GEOSERVER_PUBLIC_LOCATION', 'http://myhost.local/geoserver/'
> )
>
> OGC_SERVER_DEFAULT_USER = os.getenv(
> 'GEOSERVER_ADMIN_USER', 'admin'
> )
>
> OGC_SERVER_DEFAULT_PASSWORD = os.getenv(
> 'GEOSERVER_ADMIN_PASSWORD', 'geoserver'
> )
>
> # OGC (WMS/WFS/WCS) Server Settings
> OGC_SERVER = {
> 'default': {
> 'BACKEND': 'geonode.geoserver',
> 'LOCATION': GEOSERVER_LOCATION,
> 'LOGIN_ENDPOINT': 'j_spring_oauth2_geonode_login',
> 'LOGOUT_ENDPOINT': 'j_spring_oauth2_geonode_logout',
> # PUBLIC_LOCATION needs to be kept like this because in dev mode
> # the proxy won't work and the integration tests will fail
> # the entire block has to be overridden in the local_settings
> 'PUBLIC_LOCATION': GEOSERVER_PUBLIC_LOCATION,
> 'USER': OGC_SERVER_DEFAULT_USER,
> 'PASSWORD': OGC_SERVER_DEFAULT_PASSWORD,
> 'MAPFISH_PRINT_ENABLED': True,
> 'PRINT_NG_ENABLED': True,
> 'GEONODE_SECURITY_ENABLED': True,
> 'GEOFENCE_SECURITY_ENABLED': True,
> 'GEOGIG_ENABLED': False,
> 'WMST_ENABLED': False,
> 'BACKEND_WRITE_ENABLED': True,
> 'WPS_ENABLED': False,
> 'LOG_FILE': '%s/geoserver/data/logs/geoserver.log' %
> os.path.abspath(os.path.join(PROJECT_ROOT, os.pardir)),
> # Set to dictionary identifier of database containing spatial data
> in DATABASES dictionary to enable
> 'DATASTORE': 'datastore',
> 'PG_GEOGIG': False,
> 'TIMEOUT': 10 # number of seconds to allow for HTTP requests
> }
> }
>
> # WARNING: Map Editing is affected by this. GeoExt Configuration is cached
> for 5 minutes
> # CACHES = {
> # 'default': {
> # 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
> # 'LOCATION': '/var/tmp/django_cache',
> # }
> # }
>
> # If you want to enable Mosaics use the following configuration
> UPLOADER = {
> # 'BACKEND': 'geonode.rest',
> 'BACKEND': 'geonode.importer',
> 'OPTIONS': {
> 'TIME_ENABLED': True,
> 'MOSAIC_ENABLED': False,
> 'GEOGIG_ENABLED': False,
> },
> 'SUPPORTED_CRS': [
> 'EPSG:4326',
> 'EPSG:3785',
> 'EPSG:3857',
> 'EPSG:900913',
> 'EPSG:32647',
> 'EPSG:32736'
> ],
> 'SUPPORTED_EXT': [
> '.shp',
> '.csv',
> '.kml',
> '.kmz',
> '.json',
> '.geojson',
> '.tif',
> '.tiff',
> '.geotiff',
> '.gml',
> '.xml'
> ]
> }
>
> CATALOGUE = {
> 'default': {
> # The underlying CSW implementation
> # default is pycsw in local mode (tied directly to GeoNode Django
> DB)
> 'ENGINE': 'geonode.catalogue.backends.pycsw_local',
> # pycsw in non-local mode
> # 'ENGINE': 'geonode.catalogue.backends.pycsw_http',
> # GeoNetwork opensource
> # 'ENGINE': 'geonode.catalogue.backends.geonetwork',
> # deegree and others
> # 'ENGINE': 'geonode.catalogue.backends.generic',
>
> # The FULLY QUALIFIED base url to the CSW instance for this GeoNode
> 'URL': '%s/catalogue/csw' % SITEURL,
> # 'URL': 'http://localhost:8080/geonetwork/srv/en/csw',
> # 'URL': 'http://localhost:8080/deegree-csw-demo-3.0.4/services',
>
> # login credentials (for GeoNetwork)
> 'USER': 'admin',
> 'PASSWORD': 'admin',
> 'ALTERNATES_ONLY': True,
> }
> }
>
> # pycsw settings
> PYCSW = {
> # pycsw configuration
> 'CONFIGURATION': {
> # uncomment / adjust to override server config system defaults
> # 'server': {
> # 'maxrecords': '10',
> # 'pretty_print': 'true',
> # 'federatedcatalogues': 'http://catalog.data.gov/csw'
> # },
> 'metadata:main': {
> 'identification_title': 'GeoNode Catalogue',
> 'identification_abstract': 'GeoNode is an open source
> platform' \
> ' that facilitates the creation, sharing, and collaborative
> use' \
> ' of geospatial data',
> 'identification_keywords': 'sdi, catalogue, discovery,
> metadata,' \
> ' GeoNode',
> 'identification_keywords_type': 'theme',
> 'identification_fees': 'None',
> 'identification_accessconstraints': 'None',
> 'provider_name': 'Organization Name',
> 'provider_url': SITEURL,
> 'contact_name': 'Lastname, Firstname',
> 'contact_position': 'Position Title',
> 'contact_address': 'Mailing Address',
> 'contact_city': 'City',
> 'contact_stateorprovince': 'Administrative Area',
> 'contact_postalcode': 'Zip or Postal Code',
> 'contact_country': 'Country',
> 'contact_phone': '+xx-xxx-xxx-xxxx',
> 'contact_fax': '+xx-xxx-xxx-xxxx',
> 'contact_email': 'Email Address',
> 'contact_url': 'Contact URL',
> 'contact_hours': 'Hours of Service',
> 'contact_instructions': 'During hours of service. Off on ' \
> 'weekends.',
> 'contact_role': 'pointOfContact',
> },
> 'metadata:inspire': {
> 'enabled': 'true',
> 'languages_supported': 'eng,gre',
> 'default_language': 'eng',
> 'date': 'YYYY-MM-DD',
> 'gemet_keywords': 'Utility and governmental services',
> 'conformity_service': 'notEvaluated',
> 'contact_name': 'Organization Name',
> 'contact_email': 'Email Address',
> 'temp_extent': 'YYYY-MM-DD/YYYY-MM-DD',
> }
> }
> }
>
> # GeoNode javascript client configuration
>
> # default map projection
> # Note: If set to EPSG:4326, then only EPSG:4326 basemaps will work.
> DEFAULT_MAP_CRS = "EPSG:3857"
>
> # Where should newly created maps be focused?
> DEFAULT_MAP_CENTER = (0, 0)
>
> # How tightly zoomed should newly created maps be?
> # 0 = entire world;
> # maximum zoom is between 12 and 15 (for Google Maps, coverage varies by
> area)
> DEFAULT_MAP_ZOOM = 0
>
> # Default preview library
> # GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY = 'geoext' # DEPRECATED use
> HOOKSET instead
> GEONODE_CLIENT_HOOKSET = "geonode.client.hooksets.GeoExtHookSet"
>
> # To enable the REACT based Client enable those
> # INSTALLED_APPS += ('geonode-client', )
> # GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY = 'react' # DEPRECATED use HOOKSET
> instead
> # GEONODE_CLIENT_HOOKSET = "geonode.client.hooksets.ReactHookSet"
>
> # To enable the Leaflet based Client enable those
> # GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY = 'leaflet' # DEPRECATED use
> HOOKSET instead
> # GEONODE_CLIENT_HOOKSET = "geonode.client.hooksets.LeafletHookSet"
>
> # To enable the MapStore2 based Client enable those
> # INSTALLED_APPS += ('geonode_mapstore_client', )
> # GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY = 'mapstore' # DEPRECATED use
> HOOKSET instead
> # GEONODE_CLIENT_HOOKSET =
> "geonode_mapstore_client.hooksets.MapStoreHookSet"
>
> # LEAFLET_CONFIG = {
> # 'TILES': [
> # # Find tiles at:
> # # http://leaflet-extras.github.io/leaflet-providers/preview/
> #
> # # Map Quest
> # ('Map Quest',
> # 'http://otile4.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png',
> # 'Tiles Courtesy of <a href="http://www.mapquest.com/">MapQuest</a>
> '
> # '— Map data © '
> # '<a href="http://www.openstreetmap.org/copyright
> ">OpenStreetMap</a>'),
> # # Stamen toner lite.
> # # ('Watercolor',
> # # 'http://{s}.tile.stamen.com/watercolor/{z}/{x}/{y}.png
> <http://tile.stamen.com/watercolor/%7Bz%7D/%7Bx%7D/%7By%7D.png>',
> # # 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, \
> # # <a href="http://creativecommons.org/licenses/by/3.0">CC BY
> 3.0</a> — Map data © \
> # # <a href="http://openstreetmap.org">OpenStreetMap</a>
> contributors, \
> # # <a href="http://creativecommons.org/licenses/by-sa/2.0/
> ">CC-BY-SA</a>'),
> # # ('Toner Lite',
> # # 'http://{s}.tile.stamen.com/toner-lite/{z}/{x}/{y}.png
> <http://tile.stamen.com/toner-lite/%7Bz%7D/%7Bx%7D/%7By%7D.png>',
> # # 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, \
> # # <a href="http://creativecommons.org/licenses/by/3.0">CC BY
> 3.0</a> — Map data © \
> # # <a href="http://openstreetmap.org">OpenStreetMap</a>
> contributors, \
> # # <a href="http://creativecommons.org/licenses/by-sa/2.0/
> ">CC-BY-SA</a>'),
> # ],
> # 'PLUGINS': {
> # 'esri-leaflet': {
> # 'js': 'lib/js/esri-leaflet.js',
> # 'auto-include': True,
> # },
> # 'leaflet-fullscreen': {
> # 'css': 'lib/css/leaflet.fullscreen.css',
> # 'js': 'lib/js/Leaflet.fullscreen.min.js',
> # 'auto-include': True,
> # },
> # },
> # 'SRID': 3857,
> # 'RESET_VIEW': False
> #}
>
> ALT_OSM_BASEMAPS = os.environ.get('ALT_OSM_BASEMAPS', False)
> CARTODB_BASEMAPS = os.environ.get('CARTODB_BASEMAPS', False)
> STAMEN_BASEMAPS = os.environ.get('STAMEN_BASEMAPS', False)
> THUNDERFOREST_BASEMAPS = os.environ.get('THUNDERFOREST_BASEMAPS', False)
> MAPBOX_ACCESS_TOKEN = os.environ.get('MAPBOX_ACCESS_TOKEN', None)
> BING_API_KEY = os.environ.get('BING_API_KEY', None)
> GOOGLE_API_KEY = os.environ.get('GOOGLE_API_KEY', None)
>
> MAP_BASELAYERS = [{
> "source": {"ptype": "gxp_olsource"},
> "type": "OpenLayers.Layer",
> "args": ["No background"],
> "name": "background",
> "visibility": False,
> "fixed": True,
> "group":"background"
> },
> # {
> # "source": {"ptype": "gxp_olsource"},
> # "type": "OpenLayers.Layer.XYZ",
> # "title": "TEST TILE",
> # "args": ["TEST_TILE", "
> http://test_tiles/tiles/${z}/${x}/${y}.png"],
> # "name": "background",
> # "attribution": "© TEST TILE",
> # "visibility": False,
> # "fixed": True,
> # "group":"background"
> # },
> {
> "source": {"ptype": "gxp_osmsource"},
> "type": "OpenLayers.Layer.OSM",
> "name": "mapnik",
> "visibility": True,
> "fixed": True,
> "group": "background"
> }]
>
> if 'geonode.geoserver' in INSTALLED_APPS:
> LOCAL_GEOSERVER = {
> "source": {
> "ptype": "gxp_wmscsource",
> "url": OGC_SERVER['default']['PUBLIC_LOCATION'] + "wms",
> "restUrl": "/gs/rest"
> }
> }
> baselayers = MAP_BASELAYERS
> MAP_BASELAYERS = [LOCAL_GEOSERVER]
> MAP_BASELAYERS.extend(baselayers)
>
> # Use kombu broker by default
> # REDIS_URL = 'redis://localhost:6379/1'
> # BROKER_URL = REDIS_URL
> # CELERY_RESULT_BACKEND = REDIS_URL
> CELERYD_HIJACK_ROOT_LOGGER = True
> CELERYD_CONCURENCY = 1
> # Set this to False to run real async tasks
> CELERY_ALWAYS_EAGER = True
> CELERYD_LOG_FILE = None
> CELERY_REDIRECT_STDOUTS = True
> CELERYD_LOG_LEVEL = 1
>
> # Haystack Search Backend Configuration. To enable,
> # first install the following:
> # - pip install django-haystack
> # - pip install elasticsearch==2.4.0
> # - pip install woosh
> # - pip install pyelasticsearch
> # Set HAYSTACK_SEARCH to True
> # Run "python manage.py rebuild_index"
> # HAYSTACK_SEARCH = False
> # Avoid permissions prefiltering
> SKIP_PERMS_FILTER = False
> # Update facet counts from Haystack
> HAYSTACK_FACET_COUNTS = True
> HAYSTACK_CONNECTIONS = {
> 'default': {
> 'ENGINE':
> 'haystack.backends.elasticsearch2_backend.Elasticsearch2SearchEngine',
> 'URL': 'http://127.0.0.1:9200/',
> 'INDEX_NAME': 'haystack',
> },
> # 'db': {
> # 'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
> # 'EXCLUDED_INDEXES': ['thirdpartyapp.search_indexes.BarIndex'],
> # }
> }
> HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
> # HAYSTACK_SEARCH_RESULTS_PER_PAGE = 20
>
> LOGGING = {
> 'version': 1,
> 'disable_existing_loggers': True,
> 'formatters': {
> 'verbose': {
> 'format': '%(levelname)s %(asctime)s %(module)s %(process)d '
> '%(thread)d %(message)s'
> },
> 'simple': {
> 'format': '%(message)s',
> },
> },
> 'filters': {
> 'require_debug_false': {
> '()': 'django.utils.log.RequireDebugFalse'
> }
> },
> 'handlers': {
> 'console': {
> 'level': 'DEBUG',
> 'class': 'logging.StreamHandler',
> 'formatter': 'simple'
> },
> 'mail_admins': {
> 'level': 'ERROR', 'filters': ['require_debug_false'],
> 'class': 'django.utils.log.AdminEmailHandler',
> }
> },
> "loggers": {
> "django": {
> "handlers": ["console"], "level": "ERROR", },
> "geonode": {
> "handlers": ["console"], "level": "DEBUG", },
> "gsconfig.catalog": {
> "handlers": ["console"], "level": "DEBUG", },
> "owslib": {
> "handlers": ["console"], "level": "DEBUG", },
> "pycsw": {
> "handlers": ["console"], "level": "ERROR", },
> "Client": {
> "handlers": ["console"], "level": "DEBUG", },
> },
> }
>
> # Additional settings
> CORS_ORIGIN_ALLOW_ALL = True
>
> GEOIP_PATH = "/usr/local/share/GeoIP"
>
> # add following lines to your local settings to enable monitoring
> MONITORING_ENABLED = True
>
> if MONITORING_ENABLED:
> if 'geonode.contrib.monitoring' not in INSTALLED_APPS:
> INSTALLED_APPS += ('geonode.contrib.monitoring',)
> if 'geonode.contrib.monitoring.middleware.MonitoringMiddleware' not in
> MIDDLEWARE_CLASSES:
> MIDDLEWARE_CLASSES += \
> ('geonode.contrib.monitoring.middleware.MonitoringMiddleware',)
> MONITORING_CONFIG = None
> MONITORING_SERVICE_NAME = 'local-geonode'
>
> #Define email service on GeoNode
> EMAIL_ENABLE = True
>
> if EMAIL_ENABLE:
> EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
> EMAIL_HOST = 'localhost'
> EMAIL_PORT = 25
> EMAIL_HOST_USER = ''
> EMAIL_HOST_PASSWORD = ''
> EMAIL_USE_TLS = False
> DEFAULT_FROM_EMAIL = 'Example.com <no-reply at localhost>'
>
> # Documents Thumbnails
> UNOCONV_ENABLE = True
>
> if UNOCONV_ENABLE:
> UNOCONV_EXECUTABLE = os.getenv('UNOCONV_EXECUTABLE',
> '/usr/bin/unoconv')
> UNOCONV_TIMEOUT = os.getenv('UNOCONV_TIMEOUT', 30) # seconds
>
> # Advanced Security Workflow Settings
> CLIENT_RESULTS_LIMIT = 20
> API_LIMIT_PER_PAGE = 1000
> FREETEXT_KEYWORDS_READONLY = False
> RESOURCE_PUBLISHING = False
> ADMIN_MODERATE_UPLOADS = False
> GROUP_PRIVATE_RESOURCES = False
> GROUP_MANDATORY_RESOURCES = False
> MODIFY_TOPICCATEGORY = True
> USER_MESSAGES_ALLOW_MULTIPLE_RECIPIENTS = True
> DISPLAY_WMS_LINKS = True
>
> # For more information on available settings please consult the Django
> docs at
> # https://docs.djangoproject.com/en/dev/ref/settings
>
>
>
>
>
>
>
> Best regards,
> Andreas
>
>
>
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> geonode-users mailing list
> geonode-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/geonode-users
>
>
> ------------------------------
>
> End of geonode-users Digest, Vol 40, Issue 49
> *********************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geonode-users/attachments/20180523/a183c450/attachment-0001.html>
More information about the geonode-users
mailing list