Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2012 Red Hat, Inc., and individual contributors
   * as indicated by the @author tags.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.jboss.web.rewrite;
 
 
 

Author(s):
Remy Maucherat
 
 public class TomcatResolver extends Resolver {
 
     protected Request request = null;
     
     public TomcatResolver(Request request) {
         this. = request;
     }
    
    
The following are not implemented: - SERVER_ADMIN - API_VERSION - IS_SUBREQ
 
     public String resolve(String key) {
         if (key.equals("HTTP_USER_AGENT")) {
             return .getHeader("user-agent");
         } else if (key.equals("HTTP_REFERER")) {
             return .getHeader("referer");
         } else if (key.equals("HTTP_COOKIE")) {
             return .getHeader("cookie");
         } else if (key.equals("HTTP_FORWARDED")) {
             return .getHeader("forwarded");
         } else if (key.equals("HTTP_HOST")) {
             String host = .getHeader("host");
             int index = (host != null) ? host.indexOf(':') : -1;
             if (index != -1)
                 host = host.substring(0, index);
             return host;
         } else if (key.equals("HTTP_PROXY_CONNECTION")) {
             return .getHeader("proxy-connection");
         } else if (key.equals("HTTP_ACCEPT")) {
             return .getHeader("accept");
         } else if (key.equals("REMOTE_ADDR")) {
             return .getRemoteAddr();
         } else if (key.equals("REMOTE_HOST")) {
             return .getRemoteHost();
         } else if (key.equals("REMOTE_PORT")) {
             return String.valueOf(.getRemotePort());
         } else if (key.equals("REMOTE_USER")) {
             return .getRemoteUser();
         } else if (key.equals("REMOTE_IDENT")) {
             return .getRemoteUser();
         } else if (key.equals("REQUEST_METHOD")) {
             return .getMethod();
         } else if (key.equals("SCRIPT_FILENAME")) {
             return .getRealPath(.getServletPath());
         } else if (key.equals("REQUEST_PATH")) {
             return .getRequestPathMB().toString();
         } else if (key.equals("CONTEXT_PATH")) {
             return .getContextPath();
         } else if (key.equals("SERVLET_PATH")) {
             return emptyStringIfNull(.getServletPath());
         } else if (key.equals("PATH_INFO")) {
             return emptyStringIfNull(.getPathInfo());
         } else if (key.equals("QUERY_STRING")) {
             return emptyStringIfNull(.getQueryString());
         } else if (key.equals("AUTH_TYPE")) {
             return .getAuthType();
         } else if (key.equals("DOCUMENT_ROOT")) {
             return .getRealPath("/");
         } else if (key.equals("SERVER_NAME")) {
             return .getLocalName();
         } else if (key.equals("SERVER_ADDR")) {
             return .getLocalAddr();
         } else if (key.equals("SERVER_PORT")) {
             return String.valueOf(.getLocalPort());
        } else if (key.equals("SERVER_PROTOCOL")) {
            return .getProtocol();
        } else if (key.equals("SERVER_SOFTWARE")) {
            return "tomcat";
        } else if (key.equals("THE_REQUEST")) {
            return .getMethod() + " " + .getRequestURI() 
            + " " + .getProtocol();
        } else if (key.equals("REQUEST_URI")) {
            return .getRequestURI();
        } else if (key.equals("REQUEST_FILENAME")) {
            return .getPathTranslated();
        } else if (key.equals("HTTPS")) {
            return .isSecure() ? "on" : "off";
        } else if (key.equals("TIME_YEAR")) {
            return String.valueOf(Calendar.getInstance().get(.));
        } else if (key.equals("TIME_MON")) {
            return String.valueOf(Calendar.getInstance().get(.));
        } else if (key.equals("TIME_DAY")) {
            return String.valueOf(Calendar.getInstance().get(.));
        } else if (key.equals("TIME_HOUR")) {
            return String.valueOf(Calendar.getInstance().get(.));
        } else if (key.equals("TIME_MIN")) {
            return String.valueOf(Calendar.getInstance().get(.));
        } else if (key.equals("TIME_SEC")) {
            return String.valueOf(Calendar.getInstance().get(.));
        } else if (key.equals("TIME_WDAY")) {
            return String.valueOf(Calendar.getInstance().get(.));
        } else if (key.equals("TIME")) {
            return FastHttpDateFormat.getCurrentDate();
        }
        return null;
    }
    public String resolveEnv(String key) {
        Object result = .getAttribute(key);
        return (result != null) ? result.toString() : System.getProperty(key);
    }
    
    public String resolveSsl(String key) {
        // FIXME: Implement SSL environment variables
        return null;
    }
    public String resolveHttp(String key) {
        return .getHeader(key);
    }
    
    public boolean resolveResource(int typeString name) {
        ProxyDirContext resources = (ProxyDirContext.getContext().getResources();
        CacheEntry cacheEntry = resources.lookupCache(name);
        if (!cacheEntry.exists) {
            return false;
        } else {
            switch (type) {
            case 0:
                return (cacheEntry.resource == null);
            case 1:
                return (cacheEntry.resource != null);
            case 2:
                return (cacheEntry.resource != null 
                        && cacheEntry.attributes.getContentLength() > 0);
            default:
                return false;
            }
        }
    }
    private static final String emptyStringIfNull(String value) {
        if (value == null) {
            return "";
        } else {
            return value;
        }
    }
New to GrepCode? Check out our FAQ X