package org.caudexorigo.http.netty; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.handler.codec.http.HttpHeaders; import org.jboss.netty.handler.codec.http.HttpRequest; import org.jboss.netty.handler.codec.http.HttpResponse; import org.jboss.netty.handler.codec.http.HttpResponseStatus; public class RedirectAction extends HttpAction { private final String path; private final HttpResponseStatus default_status; public RedirectAction(String path) { this(path, HttpResponseStatus.FOUND); } public RedirectAction(String path, HttpResponseStatus status) { super(); this.path = path; if (status.getCode() < 300 || status.getCode() > 310) { throw new IllegalArgumentException("Invalid status for redirect handler"); } this.default_status = status; } @Override public void service(ChannelHandlerContext ctx, HttpRequest req, HttpResponse res) { res.setStatus(this.default_status); res.addHeader(HttpHeaders.Names.LOCATION, path); } }