/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can
* obtain a copy of the License at
* or packager/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at packager/legal/LICENSE.txt.
*
* GPL Classpath Exception:
* Oracle designates this particular file as subject to the "Classpath"
* exception as provided by Oracle in the GPL Version 2 section of the License
* file that accompanied this code.
*
* Modifications:
* If applicable, add the following below the License Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyright [year] [name of copyright owner]"
*
* Contributor(s):
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
/**
* Pipeline associated with a virtual server.
*
* virtual server, and will abort execution and return an appropriate response
* error code if its associated virtual server is off or disabled.
*/
private boolean isOff;
private boolean isDisabled;
/**
* Constructor.
*
* @param vs Virtual server with which this VirtualServerPipeline is being
* associated
*/
super(vs);
}
/**
* Processes the specified request, and produces the appropriate
* response, by invoking the first valve (if any) of this pipeline, or
* the pipeline's basic valve.
*
* @param request The request to process
* @param response The response to return
*/
throws IOException, ServletException {
if (isOff) {
}
msg);
} else if (isDisabled) {
}
msg);
} else {
boolean redirect = false;
}
if (!redirect) {
}
}
}
/**
* Sets the <code>disabled</code> state of this VirtualServerPipeline.
*
* @param isDisabled true if the associated virtual server has been
* disabled, false otherwise
*/
this.isDisabled = isDisabled;
}
/**
* Sets the <code>off</code> state of this VirtualServerPipeline.
*
* @param isOff true if the associated virtual server is <code>off</code>,
* false otherwise
*/
}
/**
* Adds the given redirect instruction to this VirtualServerPipeline.
*
* @param from URI prefix to match
* @param url Redirect URL to return to the client
* @param urlPrefix New URL prefix to return to the client
* @param escape true if redirect URL returned to the client is to be
* escaped, false otherwise
*/
boolean escape) {
}
}
/**
* @return true if this VirtualServerPipeline has any redirects
* configured, and false otherwise.
*/
boolean hasRedirects() {
}
/**
* Clears all redirects.
*/
void clearRedirects() {
}
}
/**
* Checks to see if the given request needs to be redirected.
*
* @param request The request to process
* @param response The response to return
*
* @return true if redirect has occurred, false otherwise
*/
throws IOException {
return false;
}
// Determine the longest 'from' URI prefix match
for (int i=0; i<size; i++) {
elemFromWithTrailingSlash += "/";
}
if (redirectMatch != null) {
}
} else {
}
}
}
if (redirectMatch != null) {
// Redirect prefix match found, need to redirect
// START 6810361
return false;
}
// END 6810361
}
// START 6810361
// Implements welcome page only redirection
}
// END 6810361
// Replace 'from' URI prefix with URL prefix
} else {
// Replace 'from' URI prefix with complete URL
}
if (queryString != null) {
}
if (redirectMatch.isEscape) {
try {
if (locationCC == null) {
locationCC = new CharChunk();
}
}
if (queryString != null) {
}
} catch (MalformedURLException mue) {
if (redirectMatch.validURI) {
"virtualServerPipeline.invalidRedirectLocation",
location);
} else {
"virtualServerPipeline.invalidRedirectLocation",
location);
}
}
} finally {
if (locationCC != null) {
}
}
}
return true;
}
return false;
}
/**
* Class representing redirect parameters
*/
static class RedirectParameters {
// START 6810361
/*
* The path portion of the urlPrefix, in case urlPrefix is
* specified as an absolute URL (including protocol etc.)
*/
// END 6810361
private boolean validURI;
private boolean isEscape;
boolean isEscape) {
this.validURI = true;
// START 6810361
try {
urlPrefixPath = u.getPath();
} catch (MalformedURLException e) {
this.validURI = false;
}
// END 6810361
}
}
}