Bug 303453 - Can not access report by proxy server
Summary: Can not access report by proxy server
Status: NEW
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: BIRT (show other bugs)
Version: 2.3.2   Edit
Hardware: PC Linux
: P3 normal with 2 votes (vote)
Target Milestone: Future   Edit
Assignee: Birt-ReportViewer CLA
QA Contact: Xiaoying Gu CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-22 01:22 EST by lhr0711 CLA
Modified: 2011-03-10 23:23 EST (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description lhr0711 CLA 2010-02-22 01:22:11 EST
Build Identifier: 2.3.2

1 Deploy the report at a inner network.
2 Open the report by proxy server.
3 Can not open the report, found that the URL always to re-direct the inner network IP and port.

After investigate, found that at FramesetFragment.jsp

		if( baseURL != null )
			baseHref = baseURL;
	}
	baseHref += request.getContextPath( ) + fragment.getJSPRootPath( );

The baseHref is "http://hostname:port/...". It is incorrect, it always shows the inner hostname.

And the tag <BASE> at <BASE href="<%= baseHref %>" >, suggest not use it.

The baseHref should use relative path to direct.

Reproducible: Always

Steps to Reproduce:
1 Deploy the report at a inner network.
2 Open the report by proxy server.
3 Can not open the report, found that the URL always to re-direct the inner network IP and port.
Comment 1 Zhiqiang Qian CLA 2010-05-19 23:39:17 EDT
There is a property "base_url" in WEB-INF/viewer.properties, have you tried to change this setting?
Comment 2 Joseph CLA 2010-05-25 07:54:07 EDT
There is no know way to configure BIRT so that it will work BOTH when access directly and when accessed behind a reverse proxy.

The current "configuration solution" requires that a property (e.g. baseurl in viewer.propertis) be set to the required "external" prefix name.  This means that the "reverse proxy" name must be configured within the product -- blocking any direct access to the server. 

BIRT should be using a "relative" url and using that instead.  That way one the deployed application does NOT need to know about the network configuration (e.g. behind a reverse proxy or not) in order to function properly in each environment.