Example usage for org.springframework.web.bind ServletRequestDataBinder bind

List of usage examples for org.springframework.web.bind ServletRequestDataBinder bind

Introduction

In this page you can find the example usage for org.springframework.web.bind ServletRequestDataBinder bind.

Prototype

public void bind(ServletRequest request) 

Source Link

Document

Bind the parameters of the given request to this binder's target, also binding multipart files in case of a multipart request.

Usage

From source file:org.jasig.cas.web.ServiceValidateController.java

@Override
protected final ModelAndView handleRequestInternal(final HttpServletRequest request,
        final HttpServletResponse response) throws Exception {
    final WebApplicationService service = this.argumentExtractor.extractService(request);
    final String serviceTicketId = service != null ? service.getArtifactId() : null;

    if (service == null || serviceTicketId == null) {
        logger.debug("Could not identify service and/or service ticket. Service: {}, Service ticket id: {}",
                service, serviceTicketId);
        return generateErrorView("INVALID_REQUEST", "INVALID_REQUEST", null);
    }// w  w w.j a  v  a 2 s .c o m

    try {
        final Credential serviceCredential = getServiceCredentialsFromRequest(request);
        String proxyGrantingTicketId = null;

        if (serviceCredential != null) {
            try {
                proxyGrantingTicketId = this.centralAuthenticationService
                        .delegateTicketGrantingTicket(serviceTicketId, serviceCredential);
            } catch (final AuthenticationException e) {
                logger.info("Failed to authenticate service credential {}", serviceCredential);
            } catch (final TicketException e) {
                logger.error("Failed to create proxy granting ticket for {}", serviceCredential, e);
            }

            if (StringUtils.isEmpty(proxyGrantingTicketId)) {
                return generateErrorView("INVALID_PROXY_CALLBACK", "INVALID_PROXY_CALLBACK",
                        new Object[] { serviceCredential.getId() });
            }
        }

        final Assertion assertion = this.centralAuthenticationService.validateServiceTicket(serviceTicketId,
                service);

        final ValidationSpecification validationSpecification = this.getCommandClass();
        final ServletRequestDataBinder binder = new ServletRequestDataBinder(validationSpecification,
                "validationSpecification");
        initBinder(request, binder);
        binder.bind(request);

        if (!validationSpecification.isSatisfiedBy(assertion)) {
            logger.debug("Service ticket [{}] does not satisfy validation specification.", serviceTicketId);
            return generateErrorView("INVALID_TICKET", "INVALID_TICKET_SPEC", null);
        }

        String proxyIou = null;
        if (serviceCredential != null && proxyGrantingTicketId != null
                && this.proxyHandler.canHandle(serviceCredential)) {
            proxyIou = this.proxyHandler.handle(serviceCredential, proxyGrantingTicketId);
            if (StringUtils.isEmpty(proxyIou)) {
                return generateErrorView("INVALID_PROXY_CALLBACK", "INVALID_PROXY_CALLBACK",
                        new Object[] { serviceCredential.getId() });
            }
        }

        onSuccessfulValidation(serviceTicketId, assertion);
        logger.debug("Successfully validated service ticket {} for service [{}]", serviceTicketId,
                service.getId());
        return generateSuccessView(assertion, proxyIou);
    } catch (final TicketValidationException e) {
        return generateErrorView(e.getCode(), e.getCode(),
                new Object[] { serviceTicketId, e.getOriginalService().getId(), service.getId() });
    } catch (final TicketException te) {
        return generateErrorView(te.getCode(), te.getCode(), new Object[] { serviceTicketId });
    } catch (final UnauthorizedProxyingException e) {
        return generateErrorView(e.getMessage(), e.getMessage(), new Object[] { service.getId() });
    } catch (final UnauthorizedServiceException e) {
        return generateErrorView(e.getMessage(), e.getMessage(), null);
    }
}

From source file:org.nextframework.controller.MultiActionController.java

/**
 * Bind request parameters onto the given command bean
 * //w  ww .  j ava2  s .c  o  m
 * @param request
 *            request from which parameters will be bound
 * @param command
 *            command object, that must be a JavaBean
 * @throws Exception
 *             in case of invalid state or arguments
 */
@SuppressWarnings("deprecation")
protected ServletRequestDataBinder bind(WebRequestContext request, Object command, boolean validate)
        throws Exception {
    logger.debug("Binding request parameters onto MultiActionController command");

    ServletRequestDataBinder binder = createBinder(request.getServletRequest(), command,
            getCommandName(command));
    onCreateBinderForCommand(binder, command);
    if (command.getClass().equals(Object.class)) {
        return binder;
    }
    binder.bind(request.getServletRequest());
    onCommandBind(binder, command);

    if (validate) {
        validate(request, command, binder);
    }
    String acao = request.getParameter(ACTION_PARAMETER);
    customValidation(request, command, new BindException(binder.getBindingResult()), acao);
    onCommandValidation(binder, command);

    return binder;
}

From source file:org.onecmdb.ui.gwt.desktop.server.servlet.ChangeServiceServlet.java

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    ChangeUploadCommand cmd = new ChangeUploadCommand();
    ServletRequestDataBinder binder = new ServletRequestDataBinder(cmd);
    binder.bind(req);
    try {/*from w  ww.  j a  v  a 2  s  . com*/
        cmd.handleRequest(req, resp);
    } catch (Throwable e) {
        e.printStackTrace();
        resp.setStatus(HttpServletResponse.SC_BAD_REQUEST, "Error:" + e.getMessage());
    }
}

From source file:org.onecmdb.ui.gwt.desktop.server.servlet.QueryServiceServlet.java

protected void handleRequest(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    QueryCommand cmd = new QueryCommand();
    ServletRequestDataBinder binder = new ServletRequestDataBinder(cmd);
    binder.bind(req);
    Properties prop = new Properties();
    for (Enumeration attrs = req.getParameterNames(); attrs.hasMoreElements();) {
        String key = (String) attrs.nextElement();
        Object value = req.getParameter(key);
        prop.put(key, value);//from  www .j a v a 2 s . co m
    }
    cmd.setAttrMap(prop);

    try {
        resp.setContentType(cmd.getContentType());
        //resp.setCharacterEncoding("UTF-8");
        OutputStream out = resp.getOutputStream();
        cmd.transfer(out);
        out.flush();

    } catch (Throwable e) {
        e.printStackTrace();
        resp.setStatus(HttpServletResponse.SC_BAD_REQUEST, "Error:" + e.toString());
    }

}

From source file:org.onecmdb.ui.gwt.desktop.server.servlet.TransformServiceServlet.java

protected void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws IOException {

    File root = ContentParserFactory.get().getRootPath();
    if (root == null) {
        resp.sendError(404, "Root path not found!");
        return;/*  w  w  w  .ja  v a2  s.  c o  m*/
    }

    ExportQueryCommand cmd = new ExportQueryCommand();
    if ("true".equals(ConfigurationFactory.get("RequireLoginForReport"))) {
        cmd.setUser(null);
        cmd.setPwd(null);
        if (req.getCookies() != null) {
            for (Cookie cookie : req.getCookies()) {
                if (cookie.getName().equals("auth_token")) {
                    cmd.setToken(cookie.getValue());
                }
            }
        }
    }

    cmd.setRoot(root.getCanonicalPath());

    ServletRequestDataBinder binder = new ServletRequestDataBinder(cmd);
    binder.bind(req);
    Properties prop = new Properties();
    for (Enumeration attrs = req.getParameterNames(); attrs.hasMoreElements();) {
        String key = (String) attrs.nextElement();
        Object value = req.getParameter(key);
        if ("user".equals(key)) {
            if (value instanceof String) {
                cmd.setUser((String) value);
            }
            cmd.setToken(null);
        }
        if ("pwd".equals(key)) {
            if (value instanceof String) {
                cmd.setPwd((String) value);
            }
            cmd.setToken(null);
            continue;
        }

        prop.put(key, value);
    }
    cmd.setAttrMap(prop);

    try {
        resp.setContentType(cmd.getContentType());
        //resp.setCharacterEncoding(cmd.getEncoding());
        OutputStream out = resp.getOutputStream();
        cmd.transfer(out);
        out.flush();

    } catch (Throwable e) {
        e.printStackTrace();
        resp.setStatus(HttpServletResponse.SC_BAD_REQUEST, "Error:" + e.toString());
    }
}

From source file:org.onecmdb.utils.servletcontroller.RemoteController.java

public ModelAndView exportHandler(HttpServletRequest request, HttpServletResponse resp) throws Exception {
    getLog().info("ExportHandler()");
    ExportCommand command = new ExportCommand();
    command.setContext(onecmdb);/* w w w.j  a  v  a2s . c  om*/

    ServletRequestDataBinder binder = new ServletRequestDataBinder(command);
    binder.bind(request);

    try {
        resp.setContentType(command.getContentType());

        //resp.setContentLength(-1);
        OutputStream out = resp.getOutputStream();
        command.transfer(out);
        out.flush();

    } catch (Throwable e) {
        e.printStackTrace();
        resp.setStatus(HttpServletResponse.SC_BAD_REQUEST, "Error:" + e.getMessage());
    }
    return (null);
}

From source file:org.onecmdb.web.remote.RemoteController.java

/**
 * Command(s)/*w ww  . j  a  va2 s .  c  o  m*/
 */

/*
 * Auth Command.
 */
public ModelAndView authHandler(HttpServletRequest request, HttpServletResponse resp) throws Exception {
    getLog().info("AuthHandler()");
    AuthCommand command = new AuthCommand(this.onecmdb);
    ServletRequestDataBinder binder = new ServletRequestDataBinder(command);
    binder.bind(request);

    try {
        String token = command.getToken();
        resp.setContentLength(token.length());
        resp.setContentType("text/plain");
        resp.getOutputStream().write(token.getBytes());

    } catch (Exception e) {
        resp.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE, "Authentication Failed!");
    }
    return (null);
}

From source file:org.onecmdb.web.remote.RemoteController.java

/**
 * Query command//from   w  w w  .  j av a  2s .  c o m
 * 
 * @param request
 * @param resp
 * @return
 * @throws Exception
 */
public ModelAndView queryHandler(HttpServletRequest request, HttpServletResponse resp) throws Exception {
    long start = System.currentTimeMillis();
    try {
        getLog().info("QueryHandler()");
        QueryCommand command = new QueryCommand(this.onecmdb);
        ServletRequestDataBinder binder = new ServletRequestDataBinder(command);
        binder.bind(request);

        try {
            resp.setContentType(command.getContentType());

            //resp.setContentLength(-1);
            OutputStream out = resp.getOutputStream();
            command.transfer(out);
            out.flush();

        } catch (Throwable e) {
            e.printStackTrace();
            resp.setStatus(HttpServletResponse.SC_BAD_REQUEST, "Error:" + e.getMessage());
        }
        return (null);
    } finally {
        long stop = System.currentTimeMillis();
        System.out.println("Query:" + (stop - start) + "ms");
    }
}

From source file:org.onecmdb.web.remote.RemoteController.java

/**
 * Export command// w  w w  .  ja va  2 s . c  om
 * 
 * @param request
 * @param resp
 * @return
 * @throws Exception
 */
public ModelAndView exportHandler(HttpServletRequest request, HttpServletResponse resp) throws Exception {
    long start = System.currentTimeMillis();
    try {
        getLog().info("ExportHandler()");
        ExportCommand command = new ExportCommand(this.onecmdb);
        ServletRequestDataBinder binder = new ServletRequestDataBinder(command);
        binder.bind(request);

        try {
            resp.setContentType(command.getContentType());

            //resp.setContentLength(-1);
            OutputStream out = resp.getOutputStream();
            command.transfer(out);
            out.flush();

        } catch (Throwable e) {
            e.printStackTrace();
            resp.setStatus(HttpServletResponse.SC_BAD_REQUEST, "Error:" + e.getMessage());
        }
        return (null);
    } finally {
        long stop = System.currentTimeMillis();
        System.out.println("Query:" + (stop - start) + "ms");
    }
}

From source file:org.onecmdb.web.remote.RemoteController.java

/**
 * Update command/*from ww w .  ja v  a  2s.  co m*/
 * 
 * @param request
 * @param resp
 * @return
 * @throws Exception
 */
public ModelAndView updateHandler(HttpServletRequest request, HttpServletResponse resp) throws Exception {
    long start = System.currentTimeMillis();
    try {
        getLog().info("UpdateHandler()");
        UpdateCommand command = new UpdateCommand(this.onecmdb);
        ServletRequestDataBinder binder = new ServletRequestDataBinder(command);
        binder.bind(request);

        try {
            resp.setContentType(command.getContentType());

            //resp.setContentLength(-1);
            OutputStream out = resp.getOutputStream();
            command.transfer(out);
            out.flush();

        } catch (Throwable e) {
            e.printStackTrace();
            resp.setStatus(HttpServletResponse.SC_BAD_REQUEST, "Error:" + e.getMessage());
        }
        return (null);
    } finally {
        long stop = System.currentTimeMillis();
        System.out.println("Update:" + (stop - start) + "ms");
    }
}