automatic authentication/login from geonode to geoserver does not work

595 views
Skip to first unread message

chris...@gmail.com

unread,
Jan 7, 2015, 5:14:34 AM1/7/15
to geono...@opengeo.org
Hello,

maybe somebody can help me.

i have following problem:

Geoserver application can not find geonode application on same server to authentificate and automatic login to geoserver with same credentials. I must login on geoserver app again. Also layer on geonode will not display because automatic login to geoserver app does not work. 

geoserver.log say:
2015-01-07 10:32:06,039 WARN [geonode.security] - Error connecting to the GeoNode server for authentication purposes
org.springframework.security.authentication.AuthenticationServiceException: Communication with GeoNode failed
        at org.geonode.security.GeoNodeAuthenticationProvider.authenticate(GeoNodeAuthenticationProvider.java:61)
        at org.geoserver.security.GeoServerAuthenticationProvider.authenticate(GeoServerAuthenticationProvider.java:57)
        at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
        at org.geonode.security.GeoNodeAnonymousProcessingFilter.doFilter(GeoNodeAnonymousProcessingFilter.java:63)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
        at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
        at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:82)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geonode.security.GeoNodeCookieProcessingFilter.doFilter(GeoNodeCookieProcessingFilter.java:107)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
        at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:134)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:75)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:47)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: GeoNode communication failed, status report is: 404, Not Found, http://localhost:8080/layers/acls
        at org.geonode.security.HTTPClient.sendGET(HTTPClient.java:72)
        at org.geonode.security.DefaultSecurityClient.authenticate(DefaultSecurityClient.java:152)
        at org.geonode.security.DefaultSecurityClient.authenticateAnonymous(DefaultSecurityClient.java:135)
        at org.geonode.security.GeoNodeAuthenticationProvider.authenticate(GeoNodeAuthenticationProvider.java:48)
        ... 47 more


i have checked 
/opt/geonode/geoserver/geoserver/data/security/auth/geonodeAuthProvider/config.xml
/var/lib/tomcat7/webapps/geoserver/data/security/auth/geonodeAuthProvider/config.xml
and set baseUrl to http://localhost and also http://localhost:8080 but both does not work.

Apache listen on Port 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      0          5099632     15956/apache2

Apache geonode.conf:
WSGIDaemonProcess geonode user=www-data threads=15 processes=2
<VirtualHost *:80>
    Servername localhost
    ServerAdmin webmaster@localhost

    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    CustomLog /var/log/apache2/access.log combined

    WSGIProcessGroup geonode
    WSGIPassAuthorization On
    WSGIScriptAlias / /var/www/geonode/wsgi/geonode.wsgi

    <Directory "/var/www/geonode/">
       Order allow,deny
        Options Indexes FollowSymLinks
        Allow from all
        IndexOptions FancyIndexing
    </Directory>

    Alias /static/ /var/www/geonode/static/
    Alias /uploaded/ /var/www/geonode/uploaded/
    Alias /robots.txt /var/www/geonode/robots.txt

    <Directory "/var/www/geonode/uploaded/documents/">
       Order allow,deny
       Deny from all
    </Directory>

    <Proxy *>
      Order allow,deny
      Allow from all
    </Proxy>

    ProxyPreserveHost On
    ProxyPass /geoserver http://localhost:8080/geoserver
    ProxyPassReverse /geoserver http://localhost:8080/geoserver
</VirtualHost>

My environment: 
Ubuntu 14.04.1 LTS
Geoserver 2.5.1
Geonode 2.4dev



Do you need more informations?

Thanks for help

Best regards
Christian 

Paolo Pasquali

unread,
Jul 16, 2015, 6:47:08 AM7/16/15
to geono...@opengeo.org, chris...@gmail.com
Hi Devs,
I'm facing this same problem but with the latest GeoNode 2.4 beta and GeoServer 2.7.
I made a custom installation in a virtualenv with both GeoNode and GeoServer responding on port 80. 
So I'm getting this error:

Error connecting to the GeoNode server for authentication purposes

GeoNode communication failed, status report is: 404, Not Found, http://localhost/layers/acls


I played with the settings but without success.

Thanks in advanced for your help.

Bye


Paolo

dimitri...@gmail.com

unread,
Aug 20, 2015, 1:19:45 AM8/20/15
to GeoNode Development, chris...@gmail.com
Hi,

I just faced the same issue and solved it replacing "localhost" by the public url of my GeoNode instance (in my case a Virtualbox VM ip in vboxnet0 network) in <baseUrl>, in these two xml configuration files:

1- {GeoNode src dir}/geonode/geoserver/data/security/auth/geonodeAuthProvider/config.xml
2- {GeoNode src dir}/geoserver/geoserver/data/security/auth/geonodeAuthProvider/config.xml

Hope it will do the trick for you too!

Cheers,

Dimitri.
Reply all
Reply to author
Forward
0 new messages