View Javadoc
1 /* 2 * Copyright (c) 2003 3 * Information Desire GmbH 4 * All rights reserved. 5 */ 6 package com.infodesire.infobit.filter; 7 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 import javax.servlet.Filter; 12 import javax.servlet.FilterConfig; 13 import javax.servlet.FilterChain; 14 15 import javax.servlet.ServletRequest; 16 import javax.servlet.ServletResponse; 17 import javax.servlet.ServletException; 18 19 import org.apache.commons.logging.Log; 20 import org.apache.commons.logging.LogFactory; 21 22 import com.infodesire.infobit.InfobitManager; 23 import com.infodesire.infobit.AclManager; 24 import com.infodesire.infobit.InfobitPool; 25 import com.infodesire.infobit.InfobitConfiguration; 26 import com.infodesire.infobit.InfobitException; 27 28 import java.io.IOException; 29 /*** 30 * servett filter for web wnvironment. this filter takes care of flushing 31 * infobit pools and commiting transactions 32 * 33 * @author konstantin 34 * @created September 9, 2003 35 * @version $Revision: 1.1 $ 36 */ 37 public class InfobitFilter implements Filter { 38 /*** 39 * name of infobit pool to be filtered 40 */ 41 public final static String POOL_NAME = "poolName"; 42 private final static String ALREADY_FILTERED_PREFIX = "infobit_filter_already_filtered"; 43 /*** 44 * static reference to logger 45 */ 46 private static Log _log = LogFactory.getLog(InfobitFilter.class); 47 48 private FilterConfig _config = null; 49 private String _filteredKey; 50 private String _poolName; 51 52 53 /*** 54 * @return The FilterConfig value 55 * @deprecated Not needed in latest version of Servlet 2.3 API 56 */ 57 public FilterConfig getFilterConfig() { 58 return _config; 59 } 60 61 62 /*** 63 * @param filterConfig The new FilterConfig value 64 * @deprecated Not needed in latest version of Servlet 2.3 API - 65 * replaced by init(). 66 */ 67 68 public void setFilterConfig(FilterConfig filterConfig) { 69 if (filterConfig != null) { 70 //it seems that Orion 1.5.2 calls this with a null config. 71 init(filterConfig); 72 } 73 } 74 75 76 /*** 77 * initialize filter 78 * 79 * @param config Description of Parameter 80 */ 81 public void init(FilterConfig config) { 82 _config = config; 83 84 _filteredKey = ALREADY_FILTERED_PREFIX + config.getFilterName(); 85 _poolName = config.getInitParameter(POOL_NAME); 86 _log.debug("configured filter " + config.getFilterName() + " to manage pool " + _poolName); 87 } 88 89 90 /*** 91 * destroy filter 92 */ 93 public void destroy() { 94 _config = null; 95 } 96 97 98 /*** 99 * do filtering if not already done. 100 * 101 * @param req Description of Parameter 102 * @param res Description of Parameter 103 * @param chain Description of Parameter 104 * @exception IOException Description of Exception 105 * @exception ServletException Description of Exception 106 */ 107 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 108 throws IOException, ServletException { 109 110 // do not filter if we already checked this request 111 if (req.getAttribute(_filteredKey) != null) { 112 if (_log.isDebugEnabled()) { 113 _log.debug("already present. passthrough"); 114 } 115 chain.doFilter(req, res); 116 return; 117 } 118 else { 119 req.setAttribute(_filteredKey, Boolean.TRUE); 120 } 121 122 if (_log.isDebugEnabled()) { 123 _log.debug("not yet. do filter"); 124 } 125 126 chain.doFilter(req, res); 127 InfobitConfiguration.getInstance().getPool(_poolName).flush(); 128 } 129 130 }

This page was automatically generated by Maven