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] [Commented] (TAP5-2080) Its not possible to use Tapestry5 behind an SSL Proxy AND internally / BaseURLSource is crap
Date Sat, 16 Mar 2013 11:50:13 GMT

    [ https://issues.apache.org/jira/browse/TAP5-2080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13604216#comment-13604216

Thomas Hackel commented on TAP5-2080:

I provided a solution for other users which have the same usecase and the same problem.
BaseURLSource is a short sighted implementation for a very limited usecase (Only SSL login
for example).

I am happy that this time i don't have to build my own tapestry version to get rid around
some nasty bugs like in the past for Tap3/Tap4 projects.

I don't care if its on your prio list on a upper position, since you don't care for votes
or any other input than from yourself. So you can close this issue because other users can
still find a solution to the problem using a search engine.

Thanks to the helpful people on the #tapestry IRC channel!
> 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

View raw message