[ 
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)

Reply via email to