getContextURI():
Put a debugging point in the code that invokes the method, then make a 
getmap request manually and see what value Jetty returns for that 
method. (Or we can check the servlet documentation). Will probably have 
to parameterize something, but should be easy to figure out. (Sorry, 
dont have a GS trunk build on my netbook).

Workspaces:
It could be tempting to have special workspace for GWC, as a way to 
select layers, but then I guess you lose the  benefit of per-workspace 
access control. And it doesn't let you specify important stuff like 
formats / projections anyway... so lets not go there, I guess.

We could introduce workspaces in GWC, or at least write a wrapper for 
the TileLayerDispatcher (class  in GWC) that inspects the 
HttpServletRequest for a workspace and refuses to return anything that 
the user is not supposed to get to.

-Arne


Andrea Aime wrote:
> Hi,
> GWC integration on trunk is not working anymore as a result
> of the mini resource/publish split changes. I want to fix this,
> but I think I need some context on the how.
>
> The issue happens when GWC calls onto WMS via the dispatcher,
> as GWC is building a fake servlet enviroment in which the dispatcher 
> works and the following exception is thrown:
>
>       at 
> org.geowebcache.layer.wms.FakeHttpServletRequest.getRequestURI(FakeHttpServletRequest.java:112)
>       at org.geoserver.ows.Dispatcher.init(Dispatcher.java:293)
>       at 
> org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:207)
>       at 
> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>       at org.geoserver.ows.Dispatcher.handleRequest(Dispatcher.java:50001)
>       at 
> org.geowebcache.layer.wms.WMSGeoServerHelper.makeRequest(WMSGeoServerHelper.java:35)
>       at 
> org.geowebcache.layer.wms.WMSSourceHelper.makeRequest(WMSSourceHelper.java:62)
>       at 
> org.geowebcache.layer.wms.WMSGeoServerHelper.makeRequest(WMSGeoServerHelper.java:50001)
>
> This happens as the dispatcher runs these lines:
>
>          // parse the request path into two components. (1) the 'path' which
>          // is the string after the last '/', and the 'context' which is 
> the
>          // string before the last '/'
>          String ctxPath = request.httpRequest.getContextPath();
>          String reqPath = request.httpRequest.getRequestURI();
>          reqPath = reqPath.substring(ctxPath.length());
>
> Now, those are used to get the context and, I guess, to decide what 
> layers are visible eventually?
> GWC FakeHttpServletRequst is throwing an exception when getContextURI()
> is called, and fixing it is easy, the real question is, what is the
> appropriate return value?
>
> GWC does not have the concept of workspaces, so when a request
> comes in, what happens? Should GWC build a fake request that does not
> have a workspace in it? However, how that will affect the GWC ability to 
> play with a GeoServer that actively uses workspaces for access control? 
>   Or should the GWC integration somehow mirror OWS services workspaces 
> behavior?
>
> Cheers
> Andrea
>
>   


-- 
Arne Kepp
OpenGeo - http://opengeo.org
Expert service straight from the developers


------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to