/* (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.rest.catalog;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.geoserver.rest.DispatcherCallback;
import org.geoserver.rest.DispatcherCallbackAdapter;
import org.geoserver.rest.AbstractGeoServerController;
import org.geoserver.security.AdminRequest;
import org.springframework.stereotype.Component;
/**
* Rest callback that sets the {@link AdminRequest} thread local.
*
* @author Justin Deoliveira, OpenGeo
*/
@Component
public class AdminRequestCallback extends DispatcherCallbackAdapter {
@Override
public void dispatched(HttpServletRequest HttpServletRequest,
HttpServletResponse HttpServletResponse, Object handler) {
Object controllerBean = DispatcherCallback.getControllerBean(handler);
if (controllerBean instanceof AbstractCatalogController
|| controllerBean instanceof AbstractGeoServerController) {
AdminRequest.start(this);
}
}
@Override
public void finished(HttpServletRequest HttpServletRequest,
HttpServletResponse HttpServletResponse) {
AdminRequest.finish();
}
}