Example usage for org.apache.commons.httpclient HttpException getReason

List of usage examples for org.apache.commons.httpclient HttpException getReason

Introduction

In this page you can find the example usage for org.apache.commons.httpclient HttpException getReason.

Prototype

public String getReason() 

Source Link

Document

Get the text description of the reason for an exception.

Usage

From source file:com.idega.slide.authentication.IWSlideAuthenticator.java

public void doAuthentication(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
        throws IOException, ServletException {

    HttpServletRequest request = (HttpServletRequest) arg0;
    HttpServletResponse response = (HttpServletResponse) arg1;
    HttpSession session = request.getSession();
    LoginBusinessBean loginBusiness = getLoginBusiness(request);

    try {/*from   ww w.jav a  2 s. co  m*/
        if (loginBusiness.isLoggedOn(request)) {
            LoggedOnInfo lInfo = loginBusiness.getLoggedOnInfo(session);
            if (lInfo == null) {
                setAsUnauthenticatedInSlide(session);
            } else {
                request = setAsAuthenticatedInSlide(request, lInfo.getLogin(), lInfo);
            }
        } else {
            String[] loginAndPassword = loginBusiness
                    .getLoginNameAndPasswordFromBasicAuthenticationRequest(request);
            String loggedInUser = getUserAuthenticatedBySlide(session);
            if (loginAndPassword != null) {
                String username = loginAndPassword[0];
                String password = loginAndPassword[1];
                LoggedOnInfo lInfo = loginBusiness.getLoggedOnInfo(session, username);
                if (loggedInUser == null) {
                    if (isAuthenticated(request, lInfo, username, password)) {
                        request = setAsAuthenticatedInSlide(request, username, lInfo);
                    } else {
                        setAsUnauthenticatedInSlide(session);
                    }
                } else if (!username.equals(loggedInUser)) {
                    if (isAuthenticated(request, lInfo, username, password)) {
                        request = setAsAuthenticatedInSlide(request, username, lInfo);
                    } else {
                        setAsUnauthenticatedInSlide(session);
                    }
                }

            } else if (loggedInUser != null) {
                setAsUnauthenticatedInSlide(session);
            }
        }
    } catch (HttpException e) {
        e.printStackTrace();
        response.sendError(e.getReasonCode(), e.getReason());
        return;
    }

    // the slide token is set so that business methods can get it from IWSlideSession.
    // The WebdavUtils#getSlideToken(request) can be expensive since it copies pointers to all attributes from session to the token.
    // This is used e.g. to check for permissions(i.e. to calculate permissions using the ACLSecurityImpl)
    IWSlideSession slideSession = IBOLookup.getSessionInstance(session, IWSlideSession.class);
    slideSession.setSlideToken(WebdavUtils.getSlideToken(request));

    arg2.doFilter(request, response);

    //2005.05.27 - Gummi
    //Workaround to ensure that the response is fully flushed.
    //Needed because of troubles with jakarta-slide.
    //iwc.getWriter().flush();
}

From source file:fr.jayasoft.ivy.url.HttpClientHandler.java

public URLInfo getURLInfo(URL url, int timeout) {
    HeadMethod head = null;// w  ww .  j  av  a 2s. co  m
    try {
        head = doHead(url, timeout);
        int status = head.getStatusCode();
        head.releaseConnection();
        if (status == HttpStatus.SC_OK) {
            return new URLInfo(true, getResponseContentLength(head), getLastModified(head));
        }
        if (status == HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED) {
            Message.error("Your proxy requires authentication.");
        } else if (String.valueOf(status).startsWith("4")) {
            Message.verbose("CLIENT ERROR: " + head.getStatusText() + " url=" + url);
        } else if (String.valueOf(status).startsWith("5")) {
            Message.warn("SERVER ERROR: " + head.getStatusText() + " url=" + url);
        }
        Message.debug("HTTP response status: " + status + "=" + head.getStatusText() + " url=" + url);
    } catch (HttpException e) {
        Message.error("HttpClientHandler: " + e.getMessage() + ":" + e.getReasonCode() + "=" + e.getReason()
                + " url=" + url);
    } catch (UnknownHostException e) {
        Message.warn("Host " + e.getMessage() + " not found. url=" + url);
        Message.info(
                "You probably access the destination server through a proxy server that is not well configured.");
    } catch (IOException e) {
        Message.error("HttpClientHandler: " + e.getMessage() + " url=" + url);
    } finally {
        if (head != null) {
            head.releaseConnection();
        }
    }
    return UNAVAILABLE;
}

From source file:org.apache.ambari.funtest.server.AmbariHttpWebRequest.java

@SuppressWarnings("deprecation")
private RuntimeException createRuntimeException(HttpException httpException) {
    String message = httpException.getMessage();
    try {//from   w ww.  ja  v a 2s. com
        JsonElement jsonElement = new JsonParser()
                .parse(new JsonReader(new StringReader(httpException.getMessage())));
        if (jsonElement != null && jsonElement.getAsJsonObject().has("message")) {
            message = jsonElement.getAsJsonObject().get("message").getAsString();
        }
    } catch (Throwable t) {
    }
    if (httpException.getReasonCode() != HttpStatus.SC_OK) {
        message = httpException.getReasonCode() + " " + httpException.getReason() + ": " + message;
    }
    return new RuntimeException(message, httpException);
}

From source file:org.apache.cocoon.components.source.impl.WebDAVSource.java

/**
 * Initialize the SWCL WebdavResource.//from  w  ww  .  ja  v  a2  s .co m
 * <p>
 * The action argument specifies a set of properties to load during initialization.
 * Its value is one of WebdavResource.NOACTION, WebdavResource.NAME,
 * WebdavResource.BASIC, WebdavResource.DEFAULT, WebdavResource.ALL.
 * Similarly the depth argument specifies the depth header of the PROPFIND
 * method that is executed upon initialization.
 * </p>
 * <p>
 * The different methods of this Source implementation call this method to
 * initialize the resource using their minimal action and depth requirements.
 * For instance the WebDAVSource.getMimeType() method requires WebdavResource.BASIC
 * properties and a search depth of 0 is sufficient.
 * </p>
 * <p>
 * However it may be that a later call (eg. WebDAVSource.getChildren()) requires more
 * information. In that case the WebdavResource would have to make another call to the Server.
 * It would be more efficient if previous initialization had been done using depth 1 instead.
 * In order give the user more control over this the WebDAVSource can be passed a minimal
 * action and depth using cocoon:webdav-depth and cocoon:webdav-action query string parameters.
 * By default the mimimum action is WebdavResource.BASIC (which loads all the following basic
 * webdav properties: DAV:displayname, DAV:getcontentlength, DAV:getcontenttype DAV:resourcetype,
 * DAV:getlastmodified and DAV:lockdiscovery). The default minimum depth is 1.
 * </p>
 *
 * @param action  the set of propterties the WebdavResource should load.
 * @param depth  the webdav depth.
 * @throws SourceException
 * @throws SourceNotFoundException
 */
private void initResource(int action, int depth) throws SourceException, SourceNotFoundException {
    try {
        boolean update = false;
        if (action != WebdavResource.NOACTION) {
            if (action > this.action) {
                this.action = action;
                update = true;
            } else {
                action = this.action;
            }
        }
        if (depth > this.depth) {
            this.depth = depth;
            update = true;
        } else {
            depth = this.depth;
        }
        if (this.resource == null) {
            this.resource = new WebdavResource(this.url, action, depth);
        } else if (update) {
            this.resource.setProperties(action, depth);
        }
        if (this.action > WebdavResource.NOACTION) {
            if (this.resource.isCollection()) {
                String path = this.url.getPath();
                if (path.charAt(path.length() - 1) != '/') {
                    this.url.setPath(path + "/");
                }
            }
        }
    } catch (HttpException e) {
        if (e.getReasonCode() == HttpStatus.SC_NOT_FOUND) {
            throw new SourceNotFoundException("Not found: " + getSecureURI(), e);
        }
        if (e.getReasonCode() == HttpStatus.SC_BAD_REQUEST) {
            throw new SourceException("Server doesn't appear to understand WebDAV: " + getSecureURI(), e);
        }
        final String msg = "Could not initialize webdav resource at " + getSecureURI() + ". Server responded "
                + e.getReasonCode() + " (" + e.getReason() + ") - " + e.getMessage();
        throw new SourceException(msg, e);
    } catch (IOException e) {
        throw new SourceException("Could not initialize webdav resource", e);
    }
}

From source file:org.apache.cocoon.components.source.impl.WebDAVSource.java

private void resourcesToSax(WebdavResource[] resources, ContentHandler handler) throws SAXException {
    for (int i = 0; i < resources.length; i++) {
        if (getLogger().isDebugEnabled()) {
            final String message = "RESOURCE: " + resources[i].getDisplayName();
            getLogger().debug(message);/*from  w w  w  .j  av a 2  s . c  o m*/
        }
        if (resources[i].isCollection()) {
            try {
                WebdavResource[] childs = resources[i].listWebdavResources();
                AttributesImpl attrs = new AttributesImpl();
                attrs.addAttribute(NAMESPACE, COLLECTION_NAME, PREFIX + ":name", "CDATA",
                        resources[i].getDisplayName());
                handler.startElement(NAMESPACE, COLLECTION_NAME, PREFIX + ":" + COLLECTION_NAME, attrs);
                this.resourcesToSax(childs, handler);
                handler.endElement(NAMESPACE, COLLECTION_NAME, PREFIX + ":" + COLLECTION_NAME);
            } catch (HttpException e) {
                if (getLogger().isDebugEnabled()) {
                    final String message = "Unable to get WebDAV children. Server responded "
                            + e.getReasonCode() + " (" + e.getReason() + ") - " + e.getMessage();
                    getLogger().debug(message);
                }
            } catch (SAXException e) {
                if (getLogger().isDebugEnabled()) {
                    final String message = "Unable to get WebDAV children: " + e.getMessage();
                    getLogger().debug(message, e);
                }
            } catch (IOException e) {
                if (getLogger().isDebugEnabled()) {
                    final String message = "Unable to get WebDAV children: " + e.getMessage();
                    getLogger().debug(message, e);
                }
            } catch (Exception e) {
                if (getLogger().isDebugEnabled()) {
                    final String message = "Unable to get WebDAV children: " + e.getMessage();
                    getLogger().debug(message, e);
                }
            }
        } else {
            AttributesImpl attrs = new AttributesImpl();
            attrs.addAttribute(NAMESPACE, "name", PREFIX + ":name", "CDATA", resources[i].getDisplayName());
            handler.startElement(NAMESPACE, RESOURCE_NAME, PREFIX + ":" + RESOURCE_NAME, attrs);
            handler.endElement(NAMESPACE, RESOURCE_NAME, PREFIX + ":" + RESOURCE_NAME);
        }
    }
}

From source file:org.apache.cocoon.components.source.impl.WebDAVSource.java

/**
 * Get the collection children./*  www.  j  a  v  a2s  .c  om*/
 *
 * @see org.apache.excalibur.source.TraversableSource#getChildren()
 */
public Collection getChildren() throws SourceException {
    initResource(WebdavResource.BASIC, DepthSupport.DEPTH_1);
    ArrayList children = new ArrayList();
    try {
        WebdavResource[] resources = this.resource.listWebdavResources();
        for (int i = 0; i < resources.length; i++) {
            HttpURL childURL;
            if (this.url instanceof HttpsURL) {
                childURL = new HttpsURL((HttpsURL) this.url, resources[i].getName());
            } else {
                childURL = new HttpURL(this.url, resources[i].getName());
            }
            WebDAVSource src = WebDAVSource.newWebDAVSource(resources[i], childURL, this.protocol, getLogger(),
                    this.eventfactory);
            src.enableLogging(getLogger());
            children.add(src);
        }
    } catch (HttpException e) {
        if (getLogger().isDebugEnabled()) {
            final String message = "Unable to get WebDAV children. Server responded " + e.getReasonCode() + " ("
                    + e.getReason() + ") - " + e.getMessage();
            getLogger().debug(message);
        }
        throw new SourceException("Failed to get WebDAV collection children.", e);
    } catch (SourceException e) {
        throw e;
    } catch (IOException e) {
        throw new SourceException("Failed to get WebDAV collection children.", e);
    }
    return children;
}

From source file:org.apache.cocoon.components.source.impl.WebDAVSource.java

/**
 * Sets a property for a source.//from  ww  w  .j ava 2  s .  c om
 *
 * @param sourceproperty Property of the source
 *
 * @throws SourceException If an exception occurs during this operation
 */
public void setSourceProperty(SourceProperty sourceproperty) throws SourceException {

    initResource(WebdavResource.NOACTION, DepthSupport.DEPTH_0);

    try {
        Node node = null;
        NodeList list = sourceproperty.getValue().getChildNodes();
        for (int i = 0; i < list.getLength(); i++) {
            if ((list.item(i) instanceof Text && !"".equals(list.item(i).getNodeValue()))
                    || list.item(i) instanceof Element) {

                node = list.item(i);
                break;
            }
        }

        Properties format = new Properties();
        format.put(OutputKeys.METHOD, "xml");
        format.put(OutputKeys.OMIT_XML_DECLARATION, "yes");
        String prop = XMLUtils.serializeNode(node, format);

        this.resource.proppatchMethod(new PropertyName(sourceproperty.getNamespace(), sourceproperty.getName()),
                prop, true);

    } catch (HttpException e) {
        final String message = "Unable to set property. Server responded " + e.getReasonCode() + " ("
                + e.getReason() + ") - " + e.getMessage();
        getLogger().debug(message);
        throw new SourceException("Could not set property ", e);
    } catch (Exception e) {
        throw new SourceException("Could not set property ", e);
    }
}

From source file:org.apache.cocoon.transformation.WebDAVTransformer.java

private void executeRequest(WebDAVRequestMethod method) throws SAXException {
    try {/*  w ww  .ja  va2  s  .  co  m*/
        client.executeMethod(method.getHostConfiguration(), method, m_state);

        super.contentHandler.startPrefixMapping("webdav", NS_URI);

        // start <response>
        AttributesImpl atts = new AttributesImpl();
        atts.addCDATAAttribute(TARGET_ATTR, m_target);
        atts.addCDATAAttribute(METHOD_ATTR, m_method);
        super.contentHandler.startElement(NS_URI, RESPONSE_TAG, NS_PREFIX + RESPONSE_TAG, atts);
        atts.clear();

        // <status>
        atts.addCDATAAttribute(CODE_ATTR, String.valueOf(method.getStatusCode()));
        atts.addCDATAAttribute(MSG_ATTR, method.getStatusText());
        super.contentHandler.startElement(NS_URI, STATUS_TAG, NS_PREFIX + STATUS_TAG, atts);
        atts.clear();
        super.contentHandler.endElement(NS_URI, STATUS_TAG, NS_PREFIX + STATUS_TAG);

        // <header>s
        Header[] headers = method.getResponseHeaders();
        for (int i = 0; i < headers.length; i++) {
            atts.addCDATAAttribute(NAME_ATTR, headers[i].getName());
            atts.addCDATAAttribute(VALUE_ATTR, headers[i].getValue());
            super.contentHandler.startElement(NS_URI, HEADER_TAG, NS_PREFIX + HEADER_TAG, atts);
            atts.clear();
            super.contentHandler.endElement(NS_URI, HEADER_TAG, NS_PREFIX + HEADER_TAG);
        }

        // response <body>
        final InputStream in = method.getResponseBodyAsStream();
        if (in != null) {
            String mimeType = null;
            Header header = method.getResponseHeader("Content-Type");
            if (header != null) {
                mimeType = header.getValue();
                int pos = mimeType.indexOf(';');
                if (pos != -1) {
                    mimeType = mimeType.substring(0, pos);
                }
            }
            if (mimeType != null && mimeType.equals("text/xml")) {
                super.contentHandler.startElement(NS_URI, BODY_TAG, NS_PREFIX + BODY_TAG, atts);
                IncludeXMLConsumer consumer = new IncludeXMLConsumer(super.contentHandler);
                XMLizer xmlizer = null;
                try {
                    xmlizer = (XMLizer) manager.lookup(XMLizer.ROLE);
                    xmlizer.toSAX(in, mimeType, m_target, consumer);
                } catch (ServiceException ce) {
                    throw new SAXException("Missing service dependency: " + XMLizer.ROLE, ce);
                } finally {
                    manager.release(xmlizer);
                }
                super.contentHandler.endElement(NS_URI, BODY_TAG, NS_PREFIX + BODY_TAG);
            }
        }

        // end <response>
        super.contentHandler.endElement(NS_URI, RESPONSE_TAG, NS_PREFIX + RESPONSE_TAG);

        super.contentHandler.endPrefixMapping(NS_URI);
    } catch (HttpException e) {
        throw new SAXException("Error executing WebDAV request." + " Server responded " + e.getReasonCode()
                + " (" + e.getReason() + ") - " + e.getMessage(), e);
    } catch (IOException e) {
        throw new SAXException("Error executing WebDAV request", e);
    }
}

From source file:org.apache.ivy.util.url.HttpClientHandler.java

public URLInfo getURLInfo(URL url, int timeout) {
    HttpMethodBase method = null;//from   w ww  .  j a v  a2  s .  c o m
    try {
        if (getRequestMethod() == URLHandler.REQUEST_METHOD_HEAD) {
            method = doHead(url, timeout);
        } else {
            method = doGet(url, timeout);
        }
        if (checkStatusCode(url, method)) {
            return new URLInfo(true, getResponseContentLength(method), getLastModified(method),
                    method.getRequestCharSet());
        }
    } catch (HttpException e) {
        Message.error("HttpClientHandler: " + e.getMessage() + ":" + e.getReasonCode() + "=" + e.getReason()
                + " url=" + url);
    } catch (UnknownHostException e) {
        Message.warn("Host " + e.getMessage() + " not found. url=" + url);
        Message.info("You probably access the destination server through "
                + "a proxy server that is not well configured.");
    } catch (IOException e) {
        Message.error("HttpClientHandler: " + e.getMessage() + " url=" + url);
    } catch (IllegalArgumentException e) {
        // thrown by HttpClient to indicate the URL is not valid, this happens for instance
        // when trying to download a dynamic version (cfr IVY-390)
    } finally {
        if (method != null) {
            method.releaseConnection();
        }
    }
    return UNAVAILABLE;
}

From source file:org.apache.webdav.ant.Utils.java

public static BuildException makeBuildException(String msg, Exception e) {
    if (e instanceof HttpException) {
        HttpException he = (HttpException) e;
        return new BuildException(msg + " " + e.getMessage() + " ("
                + (he.getReason() != null ? he.getReason() : HttpStatus.getStatusText(he.getReasonCode()))
                + ")");

    } else {//w  ww. ja va  2s  . co  m
        return new BuildException(msg + " (" + e.toString() + ")", e);
    }
}