package jp.cssj.cti.servlet;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

/**
 * <p>
 * PDF出力用のリソースに直接アクセスすることを禁止するフィルタです。
 * </p>
 * 
 * @author <a href="mailto:miyabe at gnn.co.jp">MIYABE Tatsuhiko </a>
 * @version $Id: AccessFilter.java,v 1.2 2005/08/18 04:51:26 harumanx Exp $
 */
public class AccessFilter implements Filter {
	/**
	 * CSSJサーブレットからのリクエストであることを示すリクエスト属性のキーです。
	 */
	public static final String FROM_CSSJ = "jp.cssj.cti.servlet.FROM_CSSJ";

	public void doFilter(ServletRequest request,
			final ServletResponse response, FilterChain chain)
			throws ServletException, IOException {
		if (request.getAttribute(FROM_CSSJ) == null) {
			((HttpServletResponse) response).sendError(404);
		} else {
			chain.doFilter(request, response);
		}
	}

	public void destroy() {
		// do nothing
	}

	public void init(FilterConfig arg0) throws ServletException {
		// do nothing
	}
}