package com.eucalyptus.www;
import java.io.IOException;
import java.net.URL;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.mortbay.jetty.handler.rewrite.Rule;
import com.eucalyptus.bootstrap.HttpServerBootstrapper;
public class Redirect extends Rule {
public Redirect( ) {
setTerminating( true );
}
@Override
public String matchAndApply( String target, HttpServletRequest req, HttpServletResponse resp ) throws IOException {
String urlStr = req.getRequestURL( ).toString( );
URL url = new URL( urlStr );
if ( !urlStr.startsWith( "https" ) ) {
resp.sendRedirect( String.format( "https://%s:%d/%s", url.getHost( ), HttpServerBootstrapper.HTTPS_PORT,
url.getPath( ) + ( ( req.getQueryString( ) != null ) ? "?" + req.getQueryString( ) : "" ) ).replaceAll("//","/") );
return target;
} else {
return target;
}
}
}