6 changed files with 213 additions and 2 deletions
@ -0,0 +1,106 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2008 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed 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.springframework.mock.web; |
||||||
|
|
||||||
|
import java.util.Enumeration; |
||||||
|
import java.util.Properties; |
||||||
|
import java.util.Collections; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.LinkedHashMap; |
||||||
|
|
||||||
|
import javax.servlet.FilterConfig; |
||||||
|
import javax.servlet.ServletContext; |
||||||
|
|
||||||
|
import org.springframework.util.Assert; |
||||||
|
|
||||||
|
/** |
||||||
|
* Mock implementation of the {@link javax.servlet.FilterConfig} interface. |
||||||
|
* |
||||||
|
* <p>Used for testing the web framework; also usefol for testing |
||||||
|
* custom {@link javax.servlet.Filter} implementations. |
||||||
|
* |
||||||
|
* @author Juergen Hoeller |
||||||
|
* @since 1.0.2 |
||||||
|
* @see MockFilterChain |
||||||
|
* @see PassThroughFilterChain |
||||||
|
*/ |
||||||
|
public class MockFilterConfig implements FilterConfig { |
||||||
|
|
||||||
|
private final ServletContext servletContext; |
||||||
|
|
||||||
|
private final String filterName; |
||||||
|
|
||||||
|
private final Map<String, String> initParameters = new LinkedHashMap<String, String>(); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new MockFilterConfig with a default {@link MockServletContext}. |
||||||
|
*/ |
||||||
|
public MockFilterConfig() { |
||||||
|
this(null, ""); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new MockFilterConfig with a default {@link MockServletContext}. |
||||||
|
* @param filterName the name of the filter |
||||||
|
*/ |
||||||
|
public MockFilterConfig(String filterName) { |
||||||
|
this(null, filterName); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new MockFilterConfig. |
||||||
|
* @param servletContext the ServletContext that the servlet runs in |
||||||
|
*/ |
||||||
|
public MockFilterConfig(ServletContext servletContext) { |
||||||
|
this(servletContext, ""); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new MockFilterConfig. |
||||||
|
* @param servletContext the ServletContext that the servlet runs in |
||||||
|
* @param filterName the name of the filter |
||||||
|
*/ |
||||||
|
public MockFilterConfig(ServletContext servletContext, String filterName) { |
||||||
|
this.servletContext = (servletContext != null ? servletContext : new MockServletContext()); |
||||||
|
this.filterName = filterName; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public String getFilterName() { |
||||||
|
return filterName; |
||||||
|
} |
||||||
|
|
||||||
|
public ServletContext getServletContext() { |
||||||
|
return servletContext; |
||||||
|
} |
||||||
|
|
||||||
|
public void addInitParameter(String name, String value) { |
||||||
|
Assert.notNull(name, "Parameter name must not be null"); |
||||||
|
this.initParameters.put(name, value); |
||||||
|
} |
||||||
|
|
||||||
|
public String getInitParameter(String name) { |
||||||
|
Assert.notNull(name, "Parameter name must not be null"); |
||||||
|
return this.initParameters.get(name); |
||||||
|
} |
||||||
|
|
||||||
|
public Enumeration<String> getInitParameterNames() { |
||||||
|
return Collections.enumeration(this.initParameters.keySet()); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,86 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2007 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed 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.springframework.mock.web; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
|
||||||
|
import javax.servlet.Filter; |
||||||
|
import javax.servlet.FilterChain; |
||||||
|
import javax.servlet.Servlet; |
||||||
|
import javax.servlet.ServletException; |
||||||
|
import javax.servlet.ServletRequest; |
||||||
|
import javax.servlet.ServletResponse; |
||||||
|
|
||||||
|
import org.springframework.util.Assert; |
||||||
|
|
||||||
|
/** |
||||||
|
* Implementation of the {@link javax.servlet.FilterConfig} interface which |
||||||
|
* simply passes the call through to a given Filter/FilterChain combo |
||||||
|
* (indicating the next Filter in the chain along with the FilterChain that it is |
||||||
|
* supposed to work on) or to a given Servlet (indicating the end of the chain). |
||||||
|
* |
||||||
|
* @author Juergen Hoeller |
||||||
|
* @since 2.0.3 |
||||||
|
* @see javax.servlet.Filter |
||||||
|
* @see javax.servlet.Servlet |
||||||
|
* @see MockFilterChain |
||||||
|
*/ |
||||||
|
public class PassThroughFilterChain implements FilterChain { |
||||||
|
|
||||||
|
private Filter filter; |
||||||
|
|
||||||
|
private FilterChain nextFilterChain; |
||||||
|
|
||||||
|
private Servlet servlet; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new PassThroughFilterChain that delegates to the given Filter, |
||||||
|
* calling it with the given FilterChain. |
||||||
|
* @param filter the Filter to delegate to |
||||||
|
* @param nextFilterChain the FilterChain to use for that next Filter |
||||||
|
*/ |
||||||
|
public PassThroughFilterChain(Filter filter, FilterChain nextFilterChain) { |
||||||
|
Assert.notNull(filter, "Filter must not be null"); |
||||||
|
Assert.notNull(nextFilterChain, "'FilterChain must not be null"); |
||||||
|
this.filter = filter; |
||||||
|
this.nextFilterChain = nextFilterChain; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new PassThroughFilterChain that delegates to the given Servlet. |
||||||
|
* @param servlet the Servlet to delegate to |
||||||
|
*/ |
||||||
|
public PassThroughFilterChain(Servlet servlet) { |
||||||
|
Assert.notNull(servlet, "Servlet must not be null"); |
||||||
|
this.servlet = servlet; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Pass the call on to the Filter/Servlet. |
||||||
|
*/ |
||||||
|
public void doFilter(ServletRequest request, ServletResponse response) throws ServletException, IOException { |
||||||
|
if (this.filter != null) { |
||||||
|
this.filter.doFilter(request, response, this.nextFilterChain); |
||||||
|
} |
||||||
|
else { |
||||||
|
this.servlet.service(request, response); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue