RejectAction.java

package com.ziesemer.utils.web.addressFilter.actions;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ziesemer.utils.web.addressFilter.FilterState;

/**
 * @author Mark A. Ziesemer
 * 	<a href="http://www.ziesemer.com.">&lt;www.ziesemer.com&gt;</a>
 */
public class RejectAction implements IAction{
	
	protected static final Logger LOGGER = LoggerFactory.getLogger(RejectAction.class);
	
	public static final RejectAction INSTANCE = new RejectAction();
	
	protected RejectAction(){
		// Singleton.
	}
	
	public void run(final ServletRequest request, final ServletResponse response, final FilterState fs, final String groupId) throws Exception{
		LOGGER.info("({}) Rejecting request due to match on address group \"{}\".",
			fs.getFilterName(), groupId);
		if(response instanceof HttpServletResponse){
			final HttpServletResponse hsr = (HttpServletResponse)response;
			hsr.sendError(HttpServletResponse.SC_FORBIDDEN);
		}
		fs.setDoChain(false);
		fs.setContinueFilter(false);
	}
	
}