Package org.geoserver.usermanagement

Source Code of org.geoserver.usermanagement.WrappingController

/* Copyright (c) 2007 TOPP - www.openplans.org.  All rights reserved.
* This code is licensed under the GPL 2.0 license, availible at the root
* application directory.
*/
package org.geoserver.usermanagement;

import com.noelios.restlet.ext.servlet.ServletConverter;
import org.geoserver.security.EditableUserDAO;
import org.restlet.Restlet;
import org.restlet.Router;
import org.springframework.beans.BeansException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
* Simple AbstractController implementation that does the translation between
* Spring requests and Restlet requests.
* @author David Winslow <dwinslow@openplans.org>
* @author Justin Deoliveira <jdeolive@openplans.org>
*/
public class WrappingController extends AbstractController {
    /**
     * The HTTP METHOD name for PUT operations.
     */
    public static String METHOD_PUT = "PUT";

    /**
     * The HTTP METHOD name for DELETE operations.
     */
    public static String METHOD_DELETE = "DELETE";

    /**
     * The ServletConverter object used to translate between Java Servlet Requests and Restlet Requests.
     */
    ServletConverter myConverter;

    /**
     * Default constructor overridden in order to allow non-default HTTP methods.
     */
    public WrappingController() {
        super();
        setSupportedMethods(new String[] { METHOD_GET, METHOD_POST, METHOD_PUT, METHOD_DELETE });
    }

    /**
     * Overridden to make the ServletConverter aware of the SpringContext
     */
    protected void initApplicationContext() throws BeansException {
        super.initApplicationContext();

        myConverter = new ServletConverter(getServletContext());
        myConverter.setTarget(createRoot());
    }

    /**
     * Actually handle a request by passing it off to the ServletConverter
     * @param req the HttpServletRequest to be handled
     * @param resp the HttpServletResponse to use for returning the response
     */
    protected ModelAndView handleRequestInternal(HttpServletRequest req, HttpServletResponse resp)
        throws Exception {
        myConverter.service(req, resp);

        return null;
    }

    /**
     * Create the Restlet that will handle the requests after they are translated.
     * @return the Restlet to handle requests
     */
    public Restlet createRoot() {
        Router router = new Router();

        EditableUserDAO eud = (EditableUserDAO) getApplicationContext()
                                                    .getBean("userDetailsService");
        // router.attach("/roles", new UserRestlet("Role Management Page"));
        router.attach("/user.{type}", new UserFinder(router.getContext(), eud));
        router.attach("/user", new UserFinder(router.getContext(), eud));
        router.attach("/user/{name}.{type}", new UserFinder(router.getContext(), eud));
        router.attach("/user/{name}", new UserFinder(router.getContext(), eud));
        router.attach("/dummy/{name}", new DummyRestlet(getApplicationContext()));

        // router.attach("/geoserver/users/{user}/roles", new
        // UserRestlet("getting role information"));
        return router;
    }
}
TOP

Related Classes of org.geoserver.usermanagement.WrappingController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.