⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filtermanagerimpl.java.svn-base

📁 portal越来越流行了
💻 SVN-BASE
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.pluto.driver.services.container;import java.io.IOException;import java.util.List;import javax.portlet.EventPortlet;import javax.portlet.Portlet;import javax.portlet.PortletContext;import javax.portlet.PortletException;import javax.portlet.PortletRequest;import javax.portlet.PortletResponse;import javax.portlet.ResourceServingPortlet;import org.apache.pluto.om.portlet.Filter;import org.apache.pluto.om.portlet.FilterMapping;import org.apache.pluto.om.portlet.PortletApplicationDefinition;import org.apache.pluto.spi.FilterManager;/** * Manage the initialization and doFilter {@link FilterChainImpl} for the filter which are * declareted in the deployment descriptor. * @since 05/29/2007 * @version 2.0 */public class FilterManagerImpl implements FilterManager{	private FilterChainImpl filterchain;	private PortletApplicationDefinition portletApp;	private String portletName;	private String lifeCycle;		public FilterManagerImpl(PortletApplicationDefinition portletApp, String portletName, String lifeCycle){		this.portletApp = portletApp;		this.portletName =  portletName;		this.lifeCycle = lifeCycle;		filterchain = new FilterChainImpl(lifeCycle);		initFilterChain();	}		public static FilterManager getFilterManager(PortletApplicationDefinition portletApp, String portletName, String lifeCycle){		return new FilterManagerImpl(portletApp,portletName,lifeCycle);	}		private void initFilterChain(){		List<? extends FilterMapping> filterMappingList = portletApp.getFilterMappings();		if (filterMappingList!= null){			for (FilterMapping filterMapping : filterMappingList) {				if (isFilter(filterMapping, portletName)){					//the filter is specified for the portlet, check the filter for the lifecycle					List<? extends Filter> filterList = portletApp.getFilters();					for (Filter filter : filterList) {						//search for the filter in the filter						if (filter.getFilterName().equals(filterMapping.getFilterName())){							//check the lifecycle							if (isLifeCycle(filter, lifeCycle)){								//the filter match to the portlet and has the specified lifecycle -> add to chain								filterchain.addFilter(filter);							}						}					}				}			}		}		}		public void processFilter(PortletRequest req, PortletResponse res, ClassLoader loader, EventPortlet eventPortlet,PortletContext portletContext)throws PortletException, IOException{		filterchain.processFilter(req, res, loader, eventPortlet, portletContext);	}		public void processFilter(PortletRequest req, PortletResponse res, ClassLoader loader, ResourceServingPortlet resourceServingPortlet,PortletContext portletContext)throws PortletException, IOException{		filterchain.processFilter(req, res, loader, resourceServingPortlet, portletContext);	}		public void processFilter(PortletRequest req, PortletResponse res, ClassLoader loader, Portlet portlet,PortletContext portletContext) throws PortletException, IOException{		filterchain.processFilter(req, res, loader, portlet, portletContext);	}		private boolean isLifeCycle(Filter filter, String lifeCycle){		List <String> lifeCyclesList = filter.getLifecycles();		for (String string : lifeCyclesList) {			if (string.equals(lifeCycle))				return true;		}		return false;	}		private boolean isFilter(FilterMapping filterMapping,String portletName){		List <String> portletNamesList = filterMapping.getPortletNames();		for (String portletNameFromFilterList : portletNamesList) {			if (portletNameFromFilterList.endsWith("*")){				if (portletNameFromFilterList.length()==1){					//if name contains only *					return true;				}				portletNameFromFilterList = portletNameFromFilterList.substring(0, portletNameFromFilterList.length()-1);				if (portletName.length()>= portletNameFromFilterList.length()){					if (portletName.substring(0, portletNameFromFilterList.length()).equals(portletNameFromFilterList)){						return true;					}				}			}			else if (portletNameFromFilterList.equals(portletName))				return true;		}		return false;	}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -