Package rabbit.filter

Source Code of rabbit.filter.BlockFilter

package rabbit.filter;

import java.nio.channels.SocketChannel;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import rabbit.http.HttpHeader;
import rabbit.proxy.Connection;
import rabbit.util.Logger;
import rabbit.util.SProperties;
import rabbit.util.PatternHelper;

/** This is a class that blocks access to certain part of the www.
*/
public class BlockFilter implements HttpFilter {
    private Pattern blockPattern;
  
    /** Create a new Blockfilter
     */
    public BlockFilter () {
    }
   
    /** test if a socket/header combination is valid or return a new HttpHeader.
     * @param socket the SocketChannel that made the request.
     * @param header the actual request made.
     * @param con the Connection handling the request.
     * @return if the url of the request is matched, then a 403 is returned,
     *         otherwise null is returned.
     */
    public HttpHeader doHttpInFiltering (SocketChannel socket,
           HttpHeader header, Connection con) {
  if (blockPattern == null)
      return null;
  Matcher m = blockPattern.matcher (header.getRequestURI ());
  if (m.find ())
      return con.getHttpGenerator ().get403 ();
  return null;
    }
   
    /** test if a socket/header combination is valid or return a new HttpHeader.
     * @param socket the SocketChannel that made the request.
     * @param header the actual request made.
     * @param con the Connection handling the request.
     * @return This method always returns null.
     */
    public HttpHeader doHttpOutFiltering (SocketChannel socket,
            HttpHeader header, Connection con) {
  return null;
    }

    /** Setup this class with the given properties.
     * @param logger the Logger for errors/warnings
     * @param properties the new configuration of this class.
     */
    public void setup (Logger logger, SProperties properties) {
  PatternHelper ph = new PatternHelper ();
  blockPattern = ph.getPattern (properties, "blockURLmatching",
              "BlockFilter: bad pattern: ", logger);
    }
}
TOP

Related Classes of rabbit.filter.BlockFilter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.