[
https://issues.apache.org/jira/browse/FINERACT-36?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Vorburger updated FINERACT-36:
--------------------------------------
Labels: p3 technical (was: p3)
> 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
> Priority: Major
> Labels: p3, technical
>
> 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
(v8.3.4#803005)