You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Mathias Binder <ma...@gmail.com> on 2013/07/24 10:29:36 UTC

NumberFormatException from Requests with invalid URIs

Hi,

we became aware of a problem caused by requests with invalid URIs on
our wicket-application. The URI contains strings like "*://*:*", so
wicket tries to determine and parse a port number, that is not
present. This leads to NumberFormatExceptions with URIs like, e.g.
http://<host>/h@@p://h@@p://

java.lang.NumberFormatException: For input string: ""
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Integer.parseInt(Integer.java:470)
java.lang.Integer.parseInt(Integer.java:499)
org.apache.wicket.request.Url.parse(Url.java:197)
org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)


Should this issue be fixed in the URL representation from wicket?
Something like a check if the string that represents the port-number
to be parsed is not emtpy?

Thanks

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: NumberFormatException from Requests with invalid URIs

Posted by Martin Funk <ma...@gmail.com>.
done
https://issues.apache.org/jira/browse/WICKET-5287


2013/7/25 Sven Meier <sv...@meiers.net>

> ServletWebRequest#**getContextRelativeUrl() passes "foo://:/" to
> Url#parse() and that one fails.
>
> Please create a Jira issue.
>
> Sven
>
>
> On 07/24/2013 05:06 PM, Martin Funk wrote:
>
>> Hi Sven,
>>
>> we still can reproduce this on any version.
>>
>> Maybe this git diff gives a clearer picture:
>>
>> diff --git
>> a/wicket-core/src/test/java/**org/apache/wicket/protocol/**http/servlet/*
>> *ServletWebRequestTest.java
>> b/wicket-core/src/test/java/**org/apache/wicket/protocol/**http/servlet/*
>> *ServletWebRequestTest.java
>> index f974a06..9ee3308 100644
>> ---
>> a/wicket-core/src/test/java/**org/apache/wicket/protocol/**http/servlet/*
>> *ServletWebRequestTest.java
>> +++
>> b/wicket-core/src/test/java/**org/apache/wicket/protocol/**http/servlet/*
>> *ServletWebRequestTest.java
>> @@ -191,6 +191,16 @@
>>    assertEquals("any/source/of/**error", errorClientUrl.toString());
>>    }
>>
>> + @Test
>> + public void wicketFoo()
>> + {
>> + String filterPath = "filterPath";
>> + MockHttpServletRequest httpRequest = new MockHttpServletRequest(null,
>> null, null);
>> + httpRequest.setURL("http://**localhost <http://localhost>" + '/' +
>> filterPath +
>> "/request/foo://:/");
>> +
>> + ServletWebRequest webRequest = new ServletWebRequest(httpRequest,
>> filterPath);
>> + }
>> +
>>    private static class CustomRequestPage extends WebPage implements
>> IMarkupResourceStreamProvider
>>    {
>>    private static final long serialVersionUID = 1L;
>>
>> This tests leads to this exption
>>
>> java.lang.**NumberFormatException: For input string: ""
>> at java.lang.**NumberFormatException.**forInputString(Unknown Source)
>> at java.lang.Integer.parseInt(**Unknown Source)
>> at java.lang.Integer.parseInt(**Unknown Source)
>> at org.apache.wicket.request.Url.**parse(Url.java:277)
>> at
>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.**
>> getContextRelativeUrl(**ServletWebRequest.java:208)
>> at
>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.<init>(**
>> ServletWebRequest.java:112)
>> at
>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.<init>(**
>> ServletWebRequest.java:82)
>> at
>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequestTest.**
>> wicketFoo(**ServletWebRequestTest.java:**201)
>> at sun.reflect.**NativeMethodAccessorImpl.**invoke0(Native Method)
>> at sun.reflect.**NativeMethodAccessorImpl.**invoke(Unknown Source)
>> at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(Unknown Source)
>> at java.lang.reflect.Method.**invoke(Unknown Source)
>> at
>> org.junit.runners.model.**FrameworkMethod$1.**runReflectiveCall(**
>> FrameworkMethod.java:47)
>> at
>> org.junit.internal.runners.**model.ReflectiveCallable.run(**
>> ReflectiveCallable.java:12)
>> at
>> org.junit.runners.model.**FrameworkMethod.**invokeExplosively(**
>> FrameworkMethod.java:44)
>> at
>> org.junit.internal.runners.**statements.InvokeMethod.**
>> evaluate(InvokeMethod.java:17)
>> at org.junit.runners.**ParentRunner.runLeaf(**ParentRunner.java:271)
>> at
>> org.junit.runners.**BlockJUnit4ClassRunner.**runChild(**
>> BlockJUnit4ClassRunner.java:**70)
>> at
>> org.junit.runners.**BlockJUnit4ClassRunner.**runChild(**
>> BlockJUnit4ClassRunner.java:**50)
>> at org.junit.runners.**ParentRunner$3.run(**ParentRunner.java:238)
>> at org.junit.runners.**ParentRunner$1.schedule(**ParentRunner.java:63)
>> at org.junit.runners.**ParentRunner.runChildren(**ParentRunner.java:236)
>> at org.junit.runners.**ParentRunner.access$000(**ParentRunner.java:53)
>> at org.junit.runners.**ParentRunner$2.evaluate(**ParentRunner.java:229)
>> at org.junit.runners.**ParentRunner.run(ParentRunner.**java:309)
>> at
>> org.eclipse.jdt.internal.**junit4.runner.**JUnit4TestReference.run(**
>> JUnit4TestReference.java:50)
>> at
>> org.eclipse.jdt.internal.**junit.runner.TestExecution.**
>> run(TestExecution.java:38)
>> at
>> org.eclipse.jdt.internal.**junit.runner.RemoteTestRunner.**
>> runTests(RemoteTestRunner.**java:467)
>> at
>> org.eclipse.jdt.internal.**junit.runner.RemoteTestRunner.**
>> runTests(RemoteTestRunner.**java:683)
>> at
>> org.eclipse.jdt.internal.**junit.runner.RemoteTestRunner.**
>> run(RemoteTestRunner.java:390)
>> at
>> org.eclipse.jdt.internal.**junit.runner.RemoteTestRunner.**
>> main(RemoteTestRunner.java:**197)
>>
>> cheers,
>>
>>
>> Martin
>>
>>
>>
>> 2013/7/24 Mathias Binder <ma...@gmail.com>
>>
>>  We work with Version 6.7.0
>>>
>>> Mathias
>>>
>>> 2013/7/24 Sven Meier <sv...@meiers.net>:
>>>
>>>> Hi,
>>>>
>>>> which Wicket version? Url parsing has been improved on lately:
>>>>
>>>>      @Test
>>>>      public void weirdUrl()
>>>>      {
>>>>          Url url = Url.parse("http://wicket.**apache.org/h@@p://h@@p://<http://wicket.apache.org/h@@p://h@@p://>
>>>> ");
>>>>
>>>>          assertEquals("wicket.apache.**org <http://wicket.apache.org>",
>>>> url.getHost());
>>>>          assertEquals("/h@@p://h@@p://"**, url.getPath());
>>>>      }
>>>>
>>>>
>>>> Works fine with 6.10.0-SNAPSHOT.
>>>>
>>>> Sven
>>>>
>>>>
>>>> On 07/24/2013 10:29 AM, Mathias Binder wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> we became aware of a problem caused by requests with invalid URIs on
>>>>> our wicket-application. The URI contains strings like "*://*:*", so
>>>>> wicket tries to determine and parse a port number, that is not
>>>>> present. This leads to NumberFormatExceptions with URIs like, e.g.
>>>>> http://<host>/h@@p://h@@p://
>>>>>
>>>>> java.lang.**NumberFormatException: For input string: ""
>>>>>
>>>>>
>>>>>  java.lang.**NumberFormatException.**forInputString(**
>>> NumberFormatException.java:48)
>>>
>>>> java.lang.Integer.parseInt(**Integer.java:470)
>>>>> java.lang.Integer.parseInt(**Integer.java:499)
>>>>> org.apache.wicket.request.Url.**parse(Url.java:197)
>>>>>
>>>>>
>>>>>  org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.**
>>> getContextRelativeUrl(**ServletWebRequest.java:222)
>>>
>>>>
>>>>>  org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.<init>(
>>> **ServletWebRequest.java:126)
>>>
>>>>
>>>>>  org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.<init>(
>>> **ServletWebRequest.java:83)
>>>
>>>>
>>>>>  org.apache.wicket.protocol.**http.WebApplication.**
>>> newWebRequest(WebApplication.**java:413)
>>>
>>>>
>>>>>  org.apache.wicket.protocol.**http.WebApplication.**createWebRequest(*
>>> *WebApplication.java:458)
>>>
>>>>
>>>>>  org.apache.wicket.protocol.**http.WicketFilter.**
>>> processRequest(WicketFilter.**java:183)
>>>
>>>>
>>>>>  org.apache.wicket.protocol.**http.WicketFilter.doFilter(**
>>> WicketFilter.java:244)
>>>
>>>>
>>>>> Should this issue be fixed in the URL representation from wicket?
>>>>> Something like a check if the string that represents the port-number
>>>>> to be parsed is not emtpy?
>>>>>
>>>>> Thanks
>>>>>
>>>>> ------------------------------**------------------------------**
>>>>> ---------
>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>
>>>>>
>>>> ------------------------------**------------------------------**
>>>> ---------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>>  ------------------------------**------------------------------**
>>> ---------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: NumberFormatException from Requests with invalid URIs

Posted by Sven Meier <sv...@meiers.net>.
ServletWebRequest#getContextRelativeUrl() passes "foo://:/" to 
Url#parse() and that one fails.

Please create a Jira issue.

Sven

On 07/24/2013 05:06 PM, Martin Funk wrote:
> Hi Sven,
>
> we still can reproduce this on any version.
>
> Maybe this git diff gives a clearer picture:
>
> diff --git
> a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
> b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
> index f974a06..9ee3308 100644
> ---
> a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
> +++
> b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
> @@ -191,6 +191,16 @@
>    assertEquals("any/source/of/error", errorClientUrl.toString());
>    }
>
> + @Test
> + public void wicketFoo()
> + {
> + String filterPath = "filterPath";
> + MockHttpServletRequest httpRequest = new MockHttpServletRequest(null,
> null, null);
> + httpRequest.setURL("http://localhost" + '/' + filterPath +
> "/request/foo://:/");
> +
> + ServletWebRequest webRequest = new ServletWebRequest(httpRequest,
> filterPath);
> + }
> +
>    private static class CustomRequestPage extends WebPage implements
> IMarkupResourceStreamProvider
>    {
>    private static final long serialVersionUID = 1L;
>
> This tests leads to this exption
>
> java.lang.NumberFormatException: For input string: ""
> at java.lang.NumberFormatException.forInputString(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at org.apache.wicket.request.Url.parse(Url.java:277)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:208)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:112)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:82)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebRequestTest.wicketFoo(ServletWebRequestTest.java:201)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
>
> cheers,
>
>
> Martin
>
>
>
> 2013/7/24 Mathias Binder <ma...@gmail.com>
>
>> We work with Version 6.7.0
>>
>> Mathias
>>
>> 2013/7/24 Sven Meier <sv...@meiers.net>:
>>> Hi,
>>>
>>> which Wicket version? Url parsing has been improved on lately:
>>>
>>>      @Test
>>>      public void weirdUrl()
>>>      {
>>>          Url url = Url.parse("http://wicket.apache.org/h@@p://h@@p://");
>>>
>>>          assertEquals("wicket.apache.org", url.getHost());
>>>          assertEquals("/h@@p://h@@p://", url.getPath());
>>>      }
>>>
>>>
>>> Works fine with 6.10.0-SNAPSHOT.
>>>
>>> Sven
>>>
>>>
>>> On 07/24/2013 10:29 AM, Mathias Binder wrote:
>>>> Hi,
>>>>
>>>> we became aware of a problem caused by requests with invalid URIs on
>>>> our wicket-application. The URI contains strings like "*://*:*", so
>>>> wicket tries to determine and parse a port number, that is not
>>>> present. This leads to NumberFormatExceptions with URIs like, e.g.
>>>> http://<host>/h@@p://h@@p://
>>>>
>>>> java.lang.NumberFormatException: For input string: ""
>>>>
>>>>
>> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>>>> java.lang.Integer.parseInt(Integer.java:470)
>>>> java.lang.Integer.parseInt(Integer.java:499)
>>>> org.apache.wicket.request.Url.parse(Url.java:197)
>>>>
>>>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
>>>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
>>>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
>>>>
>> org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
>>>>
>> org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
>>>>
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
>>>>
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)
>>>>
>>>> Should this issue be fixed in the URL representation from wicket?
>>>> Something like a check if the string that represents the port-number
>>>> to be parsed is not emtpy?
>>>>
>>>> Thanks
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: NumberFormatException from Requests with invalid URIs

Posted by Martin Funk <ma...@gmail.com>.
Hi Sven,

we still can reproduce this on any version.

Maybe this git diff gives a clearer picture:

diff --git
a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
index f974a06..9ee3308 100644
---
a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
@@ -191,6 +191,16 @@
  assertEquals("any/source/of/error", errorClientUrl.toString());
  }

+ @Test
+ public void wicketFoo()
+ {
+ String filterPath = "filterPath";
+ MockHttpServletRequest httpRequest = new MockHttpServletRequest(null,
null, null);
+ httpRequest.setURL("http://localhost" + '/' + filterPath +
"/request/foo://:/");
+
+ ServletWebRequest webRequest = new ServletWebRequest(httpRequest,
filterPath);
+ }
+
  private static class CustomRequestPage extends WebPage implements
IMarkupResourceStreamProvider
  {
  private static final long serialVersionUID = 1L;

This tests leads to this exption

java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at org.apache.wicket.request.Url.parse(Url.java:277)
at
org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:208)
at
org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:112)
at
org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:82)
at
org.apache.wicket.protocol.http.servlet.ServletWebRequestTest.wicketFoo(ServletWebRequestTest.java:201)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

cheers,


Martin



2013/7/24 Mathias Binder <ma...@gmail.com>

> We work with Version 6.7.0
>
> Mathias
>
> 2013/7/24 Sven Meier <sv...@meiers.net>:
> > Hi,
> >
> > which Wicket version? Url parsing has been improved on lately:
> >
> >     @Test
> >     public void weirdUrl()
> >     {
> >         Url url = Url.parse("http://wicket.apache.org/h@@p://h@@p://");
> >
> >         assertEquals("wicket.apache.org", url.getHost());
> >         assertEquals("/h@@p://h@@p://", url.getPath());
> >     }
> >
> >
> > Works fine with 6.10.0-SNAPSHOT.
> >
> > Sven
> >
> >
> > On 07/24/2013 10:29 AM, Mathias Binder wrote:
> >>
> >> Hi,
> >>
> >> we became aware of a problem caused by requests with invalid URIs on
> >> our wicket-application. The URI contains strings like "*://*:*", so
> >> wicket tries to determine and parse a port number, that is not
> >> present. This leads to NumberFormatExceptions with URIs like, e.g.
> >> http://<host>/h@@p://h@@p://
> >>
> >> java.lang.NumberFormatException: For input string: ""
> >>
> >>
> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
> >> java.lang.Integer.parseInt(Integer.java:470)
> >> java.lang.Integer.parseInt(Integer.java:499)
> >> org.apache.wicket.request.Url.parse(Url.java:197)
> >>
> >>
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
> >>
> >>
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
> >>
> >>
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
> >>
> >>
> org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
> >>
> >>
> org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)
> >>
> >>
> >> Should this issue be fixed in the URL representation from wicket?
> >> Something like a check if the string that represents the port-number
> >> to be parsed is not emtpy?
> >>
> >> Thanks
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: NumberFormatException from Requests with invalid URIs

Posted by Mathias Binder <ma...@gmail.com>.
We work with Version 6.7.0

Mathias

2013/7/24 Sven Meier <sv...@meiers.net>:
> Hi,
>
> which Wicket version? Url parsing has been improved on lately:
>
>     @Test
>     public void weirdUrl()
>     {
>         Url url = Url.parse("http://wicket.apache.org/h@@p://h@@p://");
>
>         assertEquals("wicket.apache.org", url.getHost());
>         assertEquals("/h@@p://h@@p://", url.getPath());
>     }
>
>
> Works fine with 6.10.0-SNAPSHOT.
>
> Sven
>
>
> On 07/24/2013 10:29 AM, Mathias Binder wrote:
>>
>> Hi,
>>
>> we became aware of a problem caused by requests with invalid URIs on
>> our wicket-application. The URI contains strings like "*://*:*", so
>> wicket tries to determine and parse a port number, that is not
>> present. This leads to NumberFormatExceptions with URIs like, e.g.
>> http://<host>/h@@p://h@@p://
>>
>> java.lang.NumberFormatException: For input string: ""
>>
>> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>> java.lang.Integer.parseInt(Integer.java:470)
>> java.lang.Integer.parseInt(Integer.java:499)
>> org.apache.wicket.request.Url.parse(Url.java:197)
>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
>>
>> org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
>>
>> org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
>>
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
>>
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)
>>
>>
>> Should this issue be fixed in the URL representation from wicket?
>> Something like a check if the string that represents the port-number
>> to be parsed is not emtpy?
>>
>> Thanks
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: NumberFormatException from Requests with invalid URIs

Posted by Sven Meier <sv...@meiers.net>.
Hi,

which Wicket version? Url parsing has been improved on lately:

     @Test
     public void weirdUrl()
     {
         Url url = Url.parse("http://wicket.apache.org/h@@p://h@@p://");

         assertEquals("wicket.apache.org", url.getHost());
         assertEquals("/h@@p://h@@p://", url.getPath());
     }


Works fine with 6.10.0-SNAPSHOT.

Sven

On 07/24/2013 10:29 AM, Mathias Binder wrote:
> Hi,
>
> we became aware of a problem caused by requests with invalid URIs on
> our wicket-application. The URI contains strings like "*://*:*", so
> wicket tries to determine and parse a port number, that is not
> present. This leads to NumberFormatExceptions with URIs like, e.g.
> http://<host>/h@@p://h@@p://
>
> java.lang.NumberFormatException: For input string: ""
> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
> java.lang.Integer.parseInt(Integer.java:470)
> java.lang.Integer.parseInt(Integer.java:499)
> org.apache.wicket.request.Url.parse(Url.java:197)
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
> org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
> org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)
>
>
> Should this issue be fixed in the URL representation from wicket?
> Something like a check if the string that represents the port-number
> to be parsed is not emtpy?
>
> Thanks
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org