Tapestry uses its own encoding (with $ used as escape + four hex digits
unicode) for URLs, see org.apache.tapestry5.services.URLEncoder and
 implementation org.apache.tapestry5.internal.services.URLEncoderImpl
<https://github.com/apache/tapestry-5/blob/master/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/URLEncoderImpl.java>
.

Try https://abc.com/?redirectUrl=https:$002f$002fdef.com$002fabc123$002f456



You can test encodings with this code:

TestPage.java

public class TestPage {

    @ActivationRequestParameter
    @Property
    private String redirectUrl;

    public void onActivate() {
        if (redirectUrl == null) {
            redirectUrl = "http://example.org/page";;
        }
    }
}


TestPage.tml
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd";>
<body>
<div>
    <t:form>
        <t:textfield value="redirectUrl"/>
        <t:submit/>
    </t:form>
</div>
</body>
</html>



On Tue, Jun 20, 2017 at 6:12 PM, Nathan Quirynen <
nat...@pensionarchitects.be> wrote:

> Hi,
>
> I have a page that needs to accept an url as query or context parameter.
>
> So for example: https://abc.com?redirectUrl=https://def.com/abc123/456
>
> But Tapestry does not accept the slashes (even if I use the %2F notation):
>
> *Input string '[...]' is not valid; the character '/' at position 7 is not
> valid.*
>
> How can I achieve what I need with Tapestry?
>
>
> Nathan
>
>

Reply via email to