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