[ 
http://www.stripesframework.org/jira/browse/STS-688?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Oscar Westra van Holthe - Kind updated STS-688:
-----------------------------------------------

    Attachment: STS-688.patch

As an additional test, /profile/gg also yields the page mapped to /profile.
This is not intended (@UrlBinding("/profile") has no parameters and cannot 
match anything but /profile).

As a solution, I propose to ignore bindings without parameters, like so (a 
unified diff is attached as a patch):

$ diff -w UrlBindingFactory.java.orig UrlBindingFactory.java
464a465,471
>         List<UrlBinding> parameters = binding.getParameters();
>         if (binding != null && !binding.getParameters().isEmpty())
>         {
>             // Ignore bindings without parameters: they are static, and hence 
> already match.
>                       // Also, as an example, a binding of 
> @UrlBinding("/profile") should not match "/profile/gg".
>                       // Fixes issue STS-688.
> 
474a482
>         }


> Resolving UrlBindings incorrectly: an unbound URL does not yield a 404 error
> ----------------------------------------------------------------------------
>
>                 Key: STS-688
>                 URL: http://www.stripesframework.org/jira/browse/STS-688
>             Project: Stripes
>          Issue Type: Bug
>          Components: ActionBean Dispatching
>    Affects Versions: Release 1.5.1
>            Reporter: Oscar Westra van Holthe - Kind
>            Priority: Minor
>         Attachments: STS-688.patch
>
>
> I have several ActionBean classes bound with these:
> @UrlBinding("/")
> @UrlBinding("/search/{text}")
> @UrlBinding("/profile")
> @UrlBinding("/admin")
> @UrlBinding("/admin/{username}")
> In addition to these, I have custom error pages defines for HTTP codes 403, 
> 404 and 500.
> When I navigate to /foobar I get the page for /, instead of the custom 404 
> error I expected.
> What goes wrong here is that the closest match, @UrlBinding("/"), has no 
> parameters. Therefore, it cannot match.
> The bug probably is in UrlBindingFactory.getBindingPrototype(String path); it 
> should check if a binding can match the URI. This probably only means an 
> added check to see if the binding has a parameter that can be filled in.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://www.stripesframework.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to