fineract-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Rowe (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FINERACT-36) User defined Templates do not work when Tomcat is behind a proxy
Date Fri, 19 Feb 2016 00:01:18 GMT
James Rowe created FINERACT-36:
----------------------------------

             Summary: User defined Templates do not work when Tomcat is behind a proxy
                 Key: FINERACT-36
                 URL: https://issues.apache.org/jira/browse/FINERACT-36
             Project: Apache Fineract
          Issue Type: Bug
          Components: System
         Environment: Linux, Nginx that proxy passes to Tomcat, OpenJDK7
            Reporter: James Rowe
            Assignee: Markus Geiss


Related to https://mifosforge.jira.com/browse/MIFOSX-2322 This issue was raised by our client
and the fix provided did not actually resolve the root issue. As mentioned in the Environment
section, our server is a multitenant server and has Nginx set up to proxy requests to Tomcat.
Because of this setup though, User defined templates do not work. Looking through the code
(https://github.com/openMF/mifosx/blob/develop/fineract-provider/src/main/java/org/apache/fineract/template/service/TemplateMergeService.java)
I have found out that the TemplateMergeService uses the HTTP API to return the results for
the templates. The issue is it tries to connect to the wrong port and with the wrong tenant.
The tomcat server is running on port 8008 and 8443 and the template merge service attempts
to connect on port 80/433. Nginx will receive the request and ignore them because of how my
routing rules are set up. Our server is setup to give a subdomain to each tenant and nginx
uses this subdomain name to set the Fineract-Platform-Id header on the request. Because the
API tries to connect on localhost (without any subdomain), the requests made from the API
to the API fail to connect. It doesn't really matter in the end, since the service grabs the
wrong tenant information. I'm not sure where it gets the tenant identifier from, but it chose
"default" as the tenant when it should have used the name of our client instead. (As a precaution,
our default tenant is a completely empty tenant)

In summary, the TemplateMergeService attempts to make calls to the API, but fails to ascertain
the correct settings to connect to the API. It fails to choose the correct tenant identifier
(uses default, when that is not correct), connects on the wrong port (80 instead of 8008),
and doesn't use the right server name for the port it connects to. The last two issues are
very related as a proper fix would be to either change the port or change the server name.
I hope this is enough information to write a fix, but if you need any more information let
me know. I'll be glad to help however I can.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message