package http.resource; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import nebula.server.Resource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class RedirectResouce implements Resource { protected Log log = LogFactory.getLog(this.getClass()); final String redirectTo; public RedirectResouce(String redirectTo) { this.redirectTo = redirectTo; } @Override public void handle(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { if ("XMLHttpRequest".equalsIgnoreCase(req.getHeader("X-Requested-With"))) { // normal parse resp.setStatus(403); resp.addHeader("WWW-Authenticate", this.redirectTo); resp.flushBuffer(); } else { // normal parse resp.setStatus(302); resp.addHeader("location", this.redirectTo); resp.flushBuffer(); } } public void redirectTo(HttpServletRequest req, HttpServletResponse resp, String redirectTo) throws IOException { if ("XMLHttpRequest".equalsIgnoreCase(req.getHeader("X-Requested-With:XMLHttpRequest"))) { // normal parse resp.setStatus(403); resp.addHeader("WWW-Authenticate", this.redirectTo); resp.flushBuffer(); } else { // normal parse resp.setStatus(302); resp.addHeader("location", redirectTo); resp.flushBuffer(); } } }