ODK Redirection Issue - Way to Edit Redirection Path Manually?

What is the problem? Please be detailed.
ODK Aggregate has been installed, but is redirecting too many times when attempting to load the directory. The specific error is, "This page isn't redirecting properly." For example: Link 1 via List of Links, attached.

What ODK tool and version are you using? And on what device and operating system version?
We are using ODK Aggregate. The WAR was created using the following settings and the ODK Aggregate v1.4.15 Windows Installer:

SSL:Yes
Port: 443
Externally facing URL: Link 2 (this is the load balancer URL, but the SSL cert is on a URL that the load balancer redirects to).

The installed stack is: Windows Virtual Sever (Server 2016 Standard 10.0.14393 Build 14393) > Apache Tomcat v8.0 > Postgres v9.3

What steps can we take to reproduce the problem?
Navigate to: Link 15

What you have you tried to fix the problem?
I have tried the following:

  • Reinstall Tomcat, ODK Aggregate WAR creation, three tries:

              **WAR One**: ODKAggregate.war
      ○ IP address: Link 2
      ○ Port: 443
      ○ Ending URL in config
      ○ Result: Link 3
    
      **WAR Two**: Root.war
      ○ SSL = Yes
      ○ IP address: Link 14
      ○ Port: 443
      ○ Result: Link 4 
    
         **WAR Three**: ODK-SSL.war
      ○ SSL = Yes
      ○ IP address: Link 5 
      ○ Port: 443
      ○ Result: Link 6
    
  • Switch from mySQL to Postgres in case there are issues with Connector/J as in here Link 7

  • Remove SSL support from ODK (though this is a requirement for the data we would like to collect, and it's a security requirement)

  • Try to point directly at load balancer, as in here: Link 8

  • Manually edit the security.properties - but I don't want to turn off SSL (as in here: Link 9)

  • Double checked to be sure I followed the Tomcat install procedure, here Link 10

  • Checked Tomcat logs, as in here: Link 11

  • Checked to be sure the database is working fine, as in here: Link 12 The tables exist and the user works fine, and the logs support this.

  • Also reviewed all other instances of redirection issues that I could find here, including: Link 13

Anything else we should know or have? If you have a test form or screenshots or logs, attach here.

I hope this will serve as a nice repository/summary of these issues, so that others in my place can come across a single summary of the options for fixing this issue. Logs attached.

Logs.docx (167.0 KB)

links.docx (112.0 KB)

Hi @kyle! Thanks for being detailed with your post. It helps narrow down what the problem might be.

It's probably not the DB. If it was, you'd see it in the logs on boot because Aggregate would complain loudly about not being able to connect to a DB.

Redirection issues generally have to do with the fully qualified domain name. My guess is that the issue is with the load balancer not having SSL, so I'd recommend doing this...

  1. Try an SSL install with the FQDN set to the server (not the load balancer, so I think ubale2018.it.tufts.edu) and confirm that works. If it doesn't work, do another install without SSL.
  2. Add the load balancer into the mix (with the FQDN as the load balancer) and see if that works. My guess is no.

My guess is that you'll need to have an SSL cert on the load balancer or it won't work. That intuitively makes sense because if the load balancer wasn't secure, then you wouldn't meet your security requirements.

Hi @yanokwa,

Thanks for your clarification!

  1. Installing to the FQDN did not work with SSL enabled, but it did work without SSL. I believe this is because the FQDN actually sits behind the load balancer. To try to address this, I bridged the load balancer to the VM, to see if we could get around that redirect. However, this still resulted in the same "too many redirects" error.

  2. I can confirm that installing without SSL to the load balancer works fine, so I think it's something with SSL.

I'll see if I we can turn of the load balancer and test that. We won't have that many users, and I plan to give them each different endpoints.

Best,
Kyle

2 Likes