You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Paul Stanton (JIRA)" <ji...@apache.org> on 2013/10/28 08:34:31 UTC

[jira] [Commented] (TAP5-2080) Default BaseURLSource does not handle all scenarios

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

Paul Stanton commented on TAP5-2080:
------------------------------------

would love to see this re-opened because it is not an uncommon requirement.

> Default BaseURLSource does not handle all scenarios
> ---------------------------------------------------
>
>                 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
>            Assignee: Howard M. Lewis Ship
>
> 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 was sent by Atlassian JIRA
(v6.1#6144)