tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Hackel (JIRA)" <j...@apache.org>
Subject [jira] [Created] (TAP5-2080) Its not possible to use Tapestry5 behind an SSL Proxy AND internally / BaseURLSource is crap
Date Thu, 07 Mar 2013 14:56:12 GMT
Thomas Hackel created TAP5-2080:
-----------------------------------

             Summary: Its not possible to use Tapestry5 behind an SSL Proxy AND internally
/ BaseURLSource is crap
                 Key: TAP5-2080
                 URL: https://issues.apache.org/jira/browse/TAP5-2080
             Project: Tapestry 5
          Issue Type: Bug
    Affects Versions: 5.3.6
            Reporter: Thomas Hackel


Two Scenario:
1. User(Internet)->SSL-Proxy:443->Tomcat:8080
2. User(Intranet)->Tomcat:8080

The BaseURLSourceImpl DOES NOT use the Scheme of the request, it just uses the secured flag
to change the scheme. Which is not required/useful in the scenario above.

The BaseURLSource creates links like "http://foo:443/bar" instead of "https://foo/bar".

This problem was already mentioned in TAP5-167 which was "silently" closed.

Overwriting the BaseURLSource, as described in http://tapestry.apache.org/https.html is also
not possible because you would need a Request object which can't be injected because it causes
some "service cycle" problem. The Request object is required to physically map 443 to https,
because the Tap5 Request object also lacks the Request Scheme...

{code}
	public static void contributeServiceOverride(
			MappedConfiguration<Class<?>, Object> configuration,
			@Inject Request request) {
		BaseURLSource source = new ProxyEnabledBaseURLSource(request);
		configuration.add(BaseURLSource.class, source);
	}
{code}

Causes:
{code}
java.lang.IllegalStateException: Construction of service 'ServiceOverride' has failed due
to recursion: the service depends on itself in some way. Please check org.apache.tapestry5.ioc.internal.services.ServiceOverrideImpl(Map)
(at ServiceOverrideImpl.java:31) via org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder)
(at TapestryIOCModule.java:49) for references to another service that is itself dependent
on service 'ServiceOverride'.

{code}





--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message