fineract-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edward Cable (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FINERACT-36) User defined Templates do not work when Tomcat is behind a proxy
Date Tue, 17 Jan 2017 13:13:26 GMT

     [ https://issues.apache.org/jira/browse/FINERACT-36?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Edward Cable updated FINERACT-36:
---------------------------------
    Labels: p3  (was: )

> 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
>              Labels: p3
>
> 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