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
