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

Reply via email to