One more thing,

On 08/24/2010 01:17 AM, Alex Busenius wrote:
> Hi devs,
> 
> 
> I propose to move servlet filters out of the old core to
> xwiki-container-servlet.
> 
> 
> There are 3 filters,
> 
> com.xpn.xwiki.web.SetCharacterEncodingFilter
> com.xpn.xwiki.web.SavedRequestRestorerFilter
> com.xpn.xwiki.web.ActionFilter
> 
> They are almost self-contained (except for ActionFilter, see a note
> later) and are easy to move. Moreover, SavedRequestRestorerFilter offers
> functionality to save the request, that might also be useful in other
> places (like csrf-token). There is (currently) no need for portlet
> filters, so moving filters into a separate module doesn't seem to be
> worth it.
> 
> Since the filters are not used directly, I'd move them into
> org.xwiki.container.servlet.filters.internal and public methods used
> elsewhere into org.xwiki.container.servlet.filters.
> 
> Note that xwiki-core would become dependent on xwiki-container-servlet
> (it currently depends on container-api), but it shouldn't be a problem.
> 
> 
> In more detail,
> 
> * SetCharacterEncodingFilter would be moved as is to filters.internal.
> 
> * SavedRequestRestorerFilter would be split into the actual filter and
>   SavedRequestManager that would contain the static methods
>     String getOriginalUrl(HttpServletRequest)
>     String saveRequest(HttpServletRequest)
>     String getRequestIdentifier()
>   SavedRequestManager could also be a component, but it would make it
>   more complicated to use from the filter.
> 
> * ActionFilter should be moved to filters.internal too, but it uses
>   XWiki.stripSegmentFromPath(String, String) to parse the URL and
>   replace the action part by the stored value.
> 
I've just noticed that ActionFilter also uses old xwiki configuration in
the URL parsing code (xwiki.virtual.usepath and
xwiki.virtual.usepath.servletpath). So moving this code to xwiki-url
would also require moving those configuration keys to xwiki.properties.


Alex

> 
> There are 2 other copies of the URL parsing code that uses
> stripSegmentFromPath(...), in XWiki.getDocumentReference(...) and
> XWiki.getXWiki(...), I can think of 3 alternatives:
> 1. Leave ActionFilter in the core
> 2. Move URL parsing code into xwiki-url, i.e. add/implement missing
>    methods to create XWikiURL from string representation and extract
>    host, action, document reference and parameters from it.
> 3. Move stripSegmentFromPath(...) to xwiki-container-servlet too
> 
> 
> I'm +1 for 2, since it's the cleanest option.
> 
> 
> WDYT?
> 
> 
> Thanks,
> Alex
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
> 
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to