javax.servlet.Filter#doFilter ( )源码实例Demo

下面列出了javax.servlet.Filter#doFilter ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: big-c   文件: TestHostnameFilter.java
@Test
public void testMissingHostname() throws Exception {
  ServletRequest request = Mockito.mock(ServletRequest.class);
  Mockito.when(request.getRemoteAddr()).thenReturn(null);

  ServletResponse response = Mockito.mock(ServletResponse.class);

  final AtomicBoolean invoked = new AtomicBoolean();

  FilterChain chain = new FilterChain() {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
      throws IOException, ServletException {
      assertTrue(HostnameFilter.get().contains("???"));
      invoked.set(true);
    }
  };

  Filter filter = new HostnameFilter();
  filter.init(null);
  assertNull(HostnameFilter.get());
  filter.doFilter(request, response, chain);
  assertTrue(invoked.get());
  assertNull(HostnameFilter.get());
  filter.destroy();
}
 
源代码2 项目: spring-analysis-note   文件: MockFilterChain.java
/**
 * Invoke registered {@link Filter Filters} and/or {@link Servlet} also saving the
 * request and response.
 */
@Override
public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException {
	Assert.notNull(request, "Request must not be null");
	Assert.notNull(response, "Response must not be null");
	Assert.state(this.request == null, "This FilterChain has already been called!");

	if (this.iterator == null) {
		this.iterator = this.filters.iterator();
	}

	if (this.iterator.hasNext()) {
		Filter nextFilter = this.iterator.next();
		nextFilter.doFilter(request, response, this);
	}

	this.request = request;
	this.response = response;
}
 
源代码3 项目: java-technology-stack   文件: MockFilterChain.java
/**
 * Invoke registered {@link Filter Filters} and/or {@link Servlet} also saving the
 * request and response.
 */
@Override
public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException {
	Assert.notNull(request, "Request must not be null");
	Assert.notNull(response, "Response must not be null");
	Assert.state(this.request == null, "This FilterChain has already been called!");

	if (this.iterator == null) {
		this.iterator = this.filters.iterator();
	}

	if (this.iterator.hasNext()) {
		Filter nextFilter = this.iterator.next();
		nextFilter.doFilter(request, response, this);
	}

	this.request = request;
	this.response = response;
}
 
源代码4 项目: java-technology-stack   文件: MockFilterChain.java
/**
 * Invoke registered {@link Filter Filters} and/or {@link Servlet} also saving the
 * request and response.
 */
@Override
public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException {
	Assert.notNull(request, "Request must not be null");
	Assert.notNull(response, "Response must not be null");
	Assert.state(this.request == null, "This FilterChain has already been called!");

	if (this.iterator == null) {
		this.iterator = this.filters.iterator();
	}

	if (this.iterator.hasNext()) {
		Filter nextFilter = this.iterator.next();
		nextFilter.doFilter(request, response, this);
	}

	this.request = request;
	this.response = response;
}
 
源代码5 项目: hadoop   文件: TestCheckUploadContentTypeFilter.java
private void test(String method, String operation, String contentType,
                  boolean upload, boolean error) throws Exception {
  HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
  HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
  Mockito.reset(request);
  Mockito.when(request.getMethod()).thenReturn(method);
  Mockito.when(request.getParameter(HttpFSFileSystem.OP_PARAM)).thenReturn(operation);
  Mockito.when(request.getParameter(HttpFSParametersProvider.DataParam.NAME)).
    thenReturn(Boolean.toString(upload));
  Mockito.when(request.getContentType()).thenReturn(contentType);

  FilterChain chain = Mockito.mock(FilterChain.class);

  Filter filter = new CheckUploadContentTypeFilter();

  filter.doFilter(request, response, chain);

  if (error) {
    Mockito.verify(response).sendError(Mockito.eq(HttpServletResponse.SC_BAD_REQUEST),
                                       Mockito.contains("Data upload"));
  }
  else {
    Mockito.verify(chain).doFilter(request, response);
  }
}
 
源代码6 项目: hadoop   文件: TestHostnameFilter.java
@Test
public void testMissingHostname() throws Exception {
  ServletRequest request = Mockito.mock(ServletRequest.class);
  Mockito.when(request.getRemoteAddr()).thenReturn(null);

  ServletResponse response = Mockito.mock(ServletResponse.class);

  final AtomicBoolean invoked = new AtomicBoolean();

  FilterChain chain = new FilterChain() {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
      throws IOException, ServletException {
      assertTrue(HostnameFilter.get().contains("???"));
      invoked.set(true);
    }
  };

  Filter filter = new HostnameFilter();
  filter.init(null);
  assertNull(HostnameFilter.get());
  filter.doFilter(request, response, chain);
  assertTrue(invoked.get());
  assertNull(HostnameFilter.get());
  filter.destroy();
}
 
源代码7 项目: big-c   文件: TestCheckUploadContentTypeFilter.java
private void test(String method, String operation, String contentType,
                  boolean upload, boolean error) throws Exception {
  HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
  HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
  Mockito.reset(request);
  Mockito.when(request.getMethod()).thenReturn(method);
  Mockito.when(request.getParameter(HttpFSFileSystem.OP_PARAM)).thenReturn(operation);
  Mockito.when(request.getParameter(HttpFSParametersProvider.DataParam.NAME)).
    thenReturn(Boolean.toString(upload));
  Mockito.when(request.getContentType()).thenReturn(contentType);

  FilterChain chain = Mockito.mock(FilterChain.class);

  Filter filter = new CheckUploadContentTypeFilter();

  filter.doFilter(request, response, chain);

  if (error) {
    Mockito.verify(response).sendError(Mockito.eq(HttpServletResponse.SC_BAD_REQUEST),
                                       Mockito.contains("Data upload"));
  }
  else {
    Mockito.verify(chain).doFilter(request, response);
  }
}
 
源代码8 项目: spring4-understanding   文件: MockFilterChain.java
/**
 * Invoke registered {@link Filter}s and/or {@link Servlet} also saving the
 * request and response.
 */
@Override
public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException {
	Assert.notNull(request, "Request must not be null");
	Assert.notNull(response, "Response must not be null");

	if (this.request != null) {
		 throw new IllegalStateException("This FilterChain has already been called!");
	}

	if (this.iterator == null) {
		this.iterator = this.filters.iterator();
	}

	if (this.iterator.hasNext()) {
		Filter nextFilter = this.iterator.next();
		nextFilter.doFilter(request, response, this);
	}

	this.request = request;
	this.response = response;
}
 
源代码9 项目: data-highway   文件: UserAgentMetricFilterTest.java
@Test
public void testName() throws Exception {
  when(request.getRequestURI()).thenReturn("/onramp/v1/roads/road1/messages");
  when(request.getHeader("User-Agent")).thenReturn("product1/1.0 product2/2.0 product3/3.0");
  Set<String> products = new HashSet<>(Arrays.asList("product1", "product2", "product4"));
  Filter underTest = new UserAgentMetricFilter(registry, products);

  underTest.doFilter(request, response, chain);

  assertThat(counter1.count(), is(1.0));
  assertThat(counter2.count(), is(1.0));
  assertThat(counter3.count(), is(0.0));
  assertThat(counter4.count(), is(0.0));
  verify(chain).doFilter(request, response);
}
 
源代码10 项目: knox   文件: GatewayFilter.java
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse ) throws IOException, ServletException {
  if( chainList != null && !chainList.isEmpty() ) {
    final Filter filter = chainList.get( 0 );
    final FilterChain chain = subChain();
    filter.doFilter( servletRequest, servletResponse, chain );
  }
}
 
源代码11 项目: java-technology-stack   文件: CompositeFilter.java
@Override
public void doFilter(final ServletRequest request, final ServletResponse response)
		throws IOException, ServletException {

	if (this.currentPosition == this.additionalFilters.size()) {
		this.originalChain.doFilter(request, response);
	}
	else {
		this.currentPosition++;
		Filter nextFilter = this.additionalFilters.get(this.currentPosition - 1);
		nextFilter.doFilter(request, response, this);
	}
}
 
源代码12 项目: Jinx   文件: SimpleFilterChain.java
@Override
public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException {
    if (filterIterator.hasNext()) {
        Filter filter = filterIterator.next();
        filter.doFilter(request, response, this);
    } else {
        servlet.service(request, response);
    }
}
 
源代码13 项目: lams   文件: CompositeFilter.java
@Override
public void doFilter(final ServletRequest request, final ServletResponse response)
		throws IOException, ServletException {

	if (this.currentPosition == this.additionalFilters.size()) {
		this.originalChain.doFilter(request, response);
	}
	else {
		this.currentPosition++;
		Filter nextFilter = this.additionalFilters.get(this.currentPosition - 1);
		nextFilter.doFilter(request, response, this);
	}
}
 
@Override
public void doFilter(ServletRequest req, ServletResponse res) throws IOException, ServletException {
	if (filterIterator.hasNext()) {
		Filter filter = filterIterator.next();
		filter.doFilter(req, res, this);
	} else {
		defaultChain.doFilter(req, res);
	}
}
 
源代码15 项目: hadoop   文件: TestHostnameFilter.java
@Test
public void hostname() throws Exception {
  ServletRequest request = Mockito.mock(ServletRequest.class);
  Mockito.when(request.getRemoteAddr()).thenReturn("localhost");

  ServletResponse response = Mockito.mock(ServletResponse.class);

  final AtomicBoolean invoked = new AtomicBoolean();

  FilterChain chain = new FilterChain() {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
      throws IOException, ServletException {
      // Hostname was set to "localhost", but may get resolved automatically to
      // "127.0.0.1" depending on OS.
      assertTrue(HostnameFilter.get().contains("localhost") ||
        HostnameFilter.get().contains("127.0.0.1"));
      invoked.set(true);
    }
  };

  Filter filter = new HostnameFilter();
  filter.init(null);
  assertNull(HostnameFilter.get());
  filter.doFilter(request, response, chain);
  assertTrue(invoked.get());
  assertNull(HostnameFilter.get());
  filter.destroy();
}
 
源代码16 项目: nexus-public   文件: DelegatingFilter.java
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
    ServletException
{
  Filter filter = delegate;
  if (filter != null) {
    filter.doFilter(request, response, chain);
  }
  else if (response instanceof HttpServletResponse) {
    ((HttpServletResponse) response).setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
  }
  else {
    chain.doFilter(request, response);
  }
}
 
源代码17 项目: knox   文件: GatewayFilter.java
@Override
public void doFilter( ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain ) throws IOException, ServletException {
  final Filter filter = getInstance();
  filter.doFilter( servletRequest, servletResponse, filterChain );
}
 
/**
 * Actually invoke the delegate Filter with the given request and response.
 * @param delegate the delegate Filter
 * @param request the current HTTP request
 * @param response the current HTTP response
 * @param filterChain the current FilterChain
 * @throws ServletException if thrown by the Filter
 * @throws IOException if thrown by the Filter
 */
protected void invokeDelegate(
		Filter delegate, ServletRequest request, ServletResponse response, FilterChain filterChain)
		throws ServletException, IOException {

	delegate.doFilter(request, response, filterChain);
}
 
源代码19 项目: lams   文件: DelegatingFilterProxy.java
/**
 * Actually invoke the delegate Filter with the given request and response.
 * @param delegate the delegate Filter
 * @param request the current HTTP request
 * @param response the current HTTP response
 * @param filterChain the current FilterChain
 * @throws ServletException if thrown by the Filter
 * @throws IOException if thrown by the Filter
 */
protected void invokeDelegate(
		Filter delegate, ServletRequest request, ServletResponse response, FilterChain filterChain)
		throws ServletException, IOException {

	delegate.doFilter(request, response, filterChain);
}
 
/**
 * Actually invoke the delegate Filter with the given request and response.
 * @param delegate the delegate Filter
 * @param request the current HTTP request
 * @param response the current HTTP response
 * @param filterChain the current FilterChain
 * @throws ServletException if thrown by the Filter
 * @throws IOException if thrown by the Filter
 */
protected void invokeDelegate(
		Filter delegate, ServletRequest request, ServletResponse response, FilterChain filterChain)
		throws ServletException, IOException {

	delegate.doFilter(request, response, filterChain);
}
 
 方法所在类