On Wed, Feb 1, 2017 at 10:20 AM, Ashesh Vashi <ashesh.va...@enterprisedb.com > wrote:
> On Wed, Feb 1, 2017 at 3:44 PM, Dave Page <dp...@pgadmin.org> wrote: > >> On Wed, Feb 1, 2017 at 10:11 AM, Harshal Dhumal >> <harshal.dhu...@enterprisedb.com> wrote: >> > Hi, >> > >> > When I setup my machine with below server setup and without >> proxy_redirect I >> > got slightly different behaviour. In my case all redirects were failing >> > cause browser was redirecting all request to http while server (nginx) >> was >> > configure to serve only https. I didn't get any intermittent state like >> > pgAdmin4 front page was loading but other requests (like css, js) was >> > failing. >> > >> > Issue was when pgAdmin4 app returns redirect (301 /302) response to >> apache >> > and apache to nginx; the nginx was returning redirect location header >> as is >> > (i.e. with http protocol as apache was configured to accept only http) >> > >> > To avoid this I need to rewrite location header at nginx >> (proxy_redirect) >> > before sending it to browser. >> > >> > proxy_set_header X-Real-IP $remote_addr; >> > proxy_set_header X-Forwarded-For $remote_addr; >> > proxy_set_header Host $host; >> > proxy_pass http://127.0.0.1:81; >> > proxy_redirect http:// https://; >> > >> > With above nginx configuration pgAdmin was loading properly. >> > >> > Server setup: >> > >> > Nginx listing at 443 (https only) and forwarding all requests to apache >> at >> > 127.0.0.1:81 >> > Apache listing at port 81 (http only) with pgAdmin4 wsgi >> >> Nice - thanks Harshal. >> >> Were you able to see why we're trying to load >> http://127.0.0.1:5050/login?next=%2Fbrowser%2Fbrowser.css ? I can >> reproduce that just by pointing my browser at a dev server (e.g. >> werkzeug). No Apache or nginx needed. >> > I think - I spotted it. > > We've the 'login_required' decorated for the browser_css function. > And, It has been referred in base.html template, which is also used in the > login.html. > > Please try to remove '@login_required' decorator from the 'browser_css' > function, found in the 'web/pgadmin/browser/__init__.py' file. > Good shout - that fixes that problem, but leaves us with an http/500 error because browser_css loads per-user preferences. I think we need to conditionally include this block from base.html: <!-- View specified stylesheets --> {% for stylesheet in current_app.stylesheets %} <link type="text/css" rel="stylesheet" href="{{ stylesheet }}"> {% endfor %} But I don't have time to investigate further right now as I have to leave for FOSDEM soon. -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company