/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.ows; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.geoserver.config.GeoServer; import org.geoserver.config.ServiceInfo; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; /** * * Configures the dispatcher to be cite compliant based on the specified service configuration. * <p> * TODO: Cite compliance should be a server wide thing. This should be addressed * when we ( if we ) refactor server configuration. When that happens this * class can be retired. * </p> * @author Justin Deoliveira, The Open Planning Project, jdeolive@openplans.org */ public class CiteComplianceHack implements HandlerInterceptor { GeoServer gs; Class serviceClass; public CiteComplianceHack(GeoServer gs, Class serviceClass) { this.gs = gs; this.serviceClass = serviceClass; } public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (handler instanceof Dispatcher) { Dispatcher dispatcher = (Dispatcher) handler; dispatcher.setCiteCompliant(getInfo().isCiteCompliant()); } return true; } public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // do nothing } public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { //do nothing } ServiceInfo getInfo() { return gs.getService(serviceClass); } }