类org.springframework.web.servlet.HandlerExecutionChain源码实例Demo

下面列出了怎么用org.springframework.web.servlet.HandlerExecutionChain的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: gocd   文件: InterceptorInjectorTest.java
@Test
public void testShouldJustReturnInterceptorsOfFrameworkIfNoTabInterceptors() throws Throwable {
    HandlerInterceptor interceptorOfFramework = new HandlerInterceptorSub();
    HandlerInterceptor[] interceptorsOfFramework = new HandlerInterceptor[] {interceptorOfFramework};

    ProceedingJoinPoint proceedingJoinPoint = mock(ProceedingJoinPoint.class);
    when(proceedingJoinPoint.proceed()).thenReturn(new HandlerExecutionChain(null, null));
    InterceptorInjector injector = new InterceptorInjector();
    injector.setInterceptors(interceptorsOfFramework);

    HandlerExecutionChain handlers =
            injector.mergeInterceptorsToTabs(proceedingJoinPoint);

    Assert.assertEquals(1, handlers.getInterceptors().length);
    Assert.assertSame(interceptorOfFramework, handlers.getInterceptors()[0]);
}
 
@Test
public void actualRequestWithMappedCorsConfiguration() throws Exception {
	CorsConfiguration config = new CorsConfiguration();
	config.addAllowedOrigin("*");
	this.handlerMapping.setCorsConfigurations(Collections.singletonMap("/foo", config));
	this.request.setMethod(RequestMethod.GET.name());
	this.request.setRequestURI("/foo");
	this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET");
	HandlerExecutionChain chain = handlerMapping.getHandler(this.request);
	assertNotNull(chain);
	assertTrue(chain.getHandler() instanceof SimpleHandler);
	config = getCorsConfiguration(chain, false);
	assertNotNull(config);
	assertArrayEquals(config.getAllowedOrigins().toArray(), new String[]{"*"});
}
 
@Test
public void actualRequestWithMappedCorsConfiguration() throws Exception {
	CorsConfiguration config = new CorsConfiguration();
	config.addAllowedOrigin("*");
	this.handlerMapping.setCorsConfigurations(Collections.singletonMap("/foo", config));
	this.request.setMethod(RequestMethod.GET.name());
	this.request.setRequestURI("/foo");
	this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET");
	HandlerExecutionChain chain = handlerMapping.getHandler(this.request);
	assertNotNull(chain);
	assertTrue(chain.getHandler() instanceof SimpleHandler);
	config = getCorsConfiguration(chain, false);
	assertNotNull(config);
	assertArrayEquals(config.getAllowedOrigins().toArray(), new String[]{"*"});
}
 
源代码4 项目: spring-analysis-note   文件: CrossOriginTests.java
@Test
public void ambiguousProducesPreFlightRequest() throws Exception {
	this.handlerMapping.registerHandler(new MethodLevelController());
	this.request.setMethod("OPTIONS");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET");
	this.request.setRequestURI("/ambiguous-produces");
	HandlerExecutionChain chain = this.handlerMapping.getHandler(request);
	CorsConfiguration config = getCorsConfiguration(chain, true);
	assertNotNull(config);
	assertArrayEquals(new String[] {"*"}, config.getAllowedMethods().toArray());
	assertArrayEquals(new String[] {"*"}, config.getAllowedOrigins().toArray());
	assertArrayEquals(new String[] {"*"}, config.getAllowedHeaders().toArray());
	assertTrue(config.getAllowCredentials());
	assertTrue(CollectionUtils.isEmpty(config.getExposedHeaders()));
	assertNull(config.getMaxAge());
}
 
@Test
public void testRequestMappingMethod() throws Exception {
	String datePattern = "MM:dd:yyyy";
	SimpleDateFormat dateFormat = new SimpleDateFormat(datePattern);
	String dateA = "11:01:2011";
	String dateB = "11:02:2011";

	MockHttpServletRequest request = new MockHttpServletRequest("POST", "/path1/path2");
	request.setParameter("datePattern", datePattern);
	request.addHeader("header1", dateA);
	request.addHeader("header2", dateB);

	HandlerExecutionChain chain = handlerMapping.getHandler(request);
	assertNotNull(chain);

	ModelAndView mav = handlerAdapter.handle(request, new MockHttpServletResponse(), chain.getHandler());

	assertEquals("model attr1:", dateFormat.parse(dateA), mav.getModel().get("attr1"));
	assertEquals("model attr2:", dateFormat.parse(dateB), mav.getModel().get("attr2"));

	MockHttpServletResponse response = new MockHttpServletResponse();
	exceptionResolver.resolveException(request, response, chain.getHandler(), new Exception("failure"));
	assertEquals("text/plain;charset=ISO-8859-1", response.getHeader("Content-Type"));
	assertEquals("failure", response.getContentAsString());
}
 
@Test
public void getHandlerMappedInterceptors() throws Exception {
	String path = "/foo";
	HandlerInterceptor interceptor = new HandlerInterceptorAdapter() {};
	MappedInterceptor mappedInterceptor = new MappedInterceptor(new String[] {path}, interceptor);

	TestRequestMappingInfoHandlerMapping mapping = new TestRequestMappingInfoHandlerMapping();
	mapping.registerHandler(new TestController());
	mapping.setInterceptors(new Object[] { mappedInterceptor });
	mapping.setApplicationContext(new StaticWebApplicationContext());

	HandlerExecutionChain chain = mapping.getHandler(new MockHttpServletRequest("GET", path));
	assertNotNull(chain);
	assertNotNull(chain.getInterceptors());
	assertSame(interceptor, chain.getInterceptors()[0]);

	chain = mapping.getHandler(new MockHttpServletRequest("GET", "/invalid"));
	assertNull(chain);
}
 
源代码7 项目: gocd   文件: InterceptorInjectorTest.java
@Test
public void testShouldMergeInterceptors() throws Throwable {
    HandlerInterceptor interceptorOfFramework = new HandlerInterceptorSub();
    HandlerInterceptor interceptorOfTab = new HandlerInterceptorSub();
    HandlerInterceptor[] interceptorsOfFramework = new HandlerInterceptor[] {interceptorOfFramework};
    HandlerInterceptor[] interceptorsOfTab = new HandlerInterceptor[] {interceptorOfTab};

    ProceedingJoinPoint proceedingJoinPoint = mock(ProceedingJoinPoint.class);
    when(proceedingJoinPoint.proceed()).thenReturn(new HandlerExecutionChain(null, interceptorsOfTab));

    InterceptorInjector injector = new InterceptorInjector();
    injector.setInterceptors(interceptorsOfFramework);

    HandlerExecutionChain handlers =
            injector.mergeInterceptorsToTabs(proceedingJoinPoint);

    Assert.assertEquals(2, handlers.getInterceptors().length);
    Assert.assertSame(interceptorOfFramework, handlers.getInterceptors()[0]);
    Assert.assertSame(interceptorOfTab, handlers.getInterceptors()[1]);
}
 
@Test
public void preflightRequestWithCorsConfigurationSource() throws Exception {
	this.handlerMapping.setCorsConfigurationSource(new CustomCorsConfigurationSource());
	this.request.setMethod(RequestMethod.OPTIONS.name());
	this.request.setRequestURI("/foo");
	this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET");
	HandlerExecutionChain chain = handlerMapping.getHandler(this.request);
	assertNotNull(chain);
	assertNotNull(chain.getHandler());
	assertTrue(chain.getHandler().getClass().getSimpleName().equals("PreFlightHandler"));
	CorsConfiguration config = getCorsConfiguration(chain, true);
	assertNotNull(config);
	assertArrayEquals(new String[]{"*"}, config.getAllowedOrigins().toArray());
	assertEquals(true, config.getAllowCredentials());
}
 
源代码9 项目: spring-analysis-note   文件: MvcNamespaceTests.java
@Test(expected = TypeMismatchException.class)
public void testCustomConversionService() throws Exception {
	loadBeanDefinitions("mvc-config-custom-conversion-service.xml");

	RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
	assertNotNull(mapping);
	mapping.setDefaultHandler(handlerMethod);

	// default web binding initializer behavior test
	MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
	request.setRequestURI("/accounts/12345");
	request.addParameter("date", "2009-10-31");
	MockHttpServletResponse response = new MockHttpServletResponse();

	HandlerExecutionChain chain = mapping.getHandler(request);
	assertEquals(1, chain.getInterceptors().length);
	assertTrue(chain.getInterceptors()[0] instanceof ConversionServiceExposingInterceptor);
	ConversionServiceExposingInterceptor interceptor = (ConversionServiceExposingInterceptor) chain.getInterceptors()[0];
	interceptor.preHandle(request, response, handler);
	assertSame(appContext.getBean("conversionService"), request.getAttribute(ConversionService.class.getName()));

	RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
	assertNotNull(adapter);
	adapter.handle(request, response, handlerMethod);
}
 
源代码10 项目: spring-analysis-note   文件: MvcNamespaceTests.java
@Test
public void testDefaultServletHandler() throws Exception {
	loadBeanDefinitions("mvc-config-default-servlet.xml");

	HttpRequestHandlerAdapter adapter = appContext.getBean(HttpRequestHandlerAdapter.class);
	assertNotNull(adapter);

	DefaultServletHttpRequestHandler handler = appContext.getBean(DefaultServletHttpRequestHandler.class);
	assertNotNull(handler);

	SimpleUrlHandlerMapping mapping = appContext.getBean(SimpleUrlHandlerMapping.class);
	assertNotNull(mapping);
	assertEquals(Ordered.LOWEST_PRECEDENCE, mapping.getOrder());

	MockHttpServletRequest request = new MockHttpServletRequest();
	request.setRequestURI("/foo.css");
	request.setMethod("GET");

	HandlerExecutionChain chain = mapping.getHandler(request);
	assertTrue(chain.getHandler() instanceof DefaultServletHttpRequestHandler);

	MockHttpServletResponse response = new MockHttpServletResponse();
	ModelAndView mv = adapter.handle(request, response, chain.getHandler());
	assertNull(mv);
}
 
源代码11 项目: spring-analysis-note   文件: MvcNamespaceTests.java
@Test
public void testDefaultServletHandlerWithOptionalAttributes() throws Exception {
	loadBeanDefinitions("mvc-config-default-servlet-optional-attrs.xml");

	HttpRequestHandlerAdapter adapter = appContext.getBean(HttpRequestHandlerAdapter.class);
	assertNotNull(adapter);

	DefaultServletHttpRequestHandler handler = appContext.getBean(DefaultServletHttpRequestHandler.class);
	assertNotNull(handler);

	SimpleUrlHandlerMapping mapping = appContext.getBean(SimpleUrlHandlerMapping.class);
	assertNotNull(mapping);
	assertEquals(Ordered.LOWEST_PRECEDENCE, mapping.getOrder());

	MockHttpServletRequest request = new MockHttpServletRequest();
	request.setRequestURI("/foo.css");
	request.setMethod("GET");

	HandlerExecutionChain chain = mapping.getHandler(request);
	assertTrue(chain.getHandler() instanceof DefaultServletHttpRequestHandler);

	MockHttpServletResponse response = new MockHttpServletResponse();
	ModelAndView mv = adapter.handle(request, response, chain.getHandler());
	assertNull(mv);
}
 
@Test
public void testNewlineInRequest() throws Exception {
	SimpleUrlHandlerMapping handlerMapping = new SimpleUrlHandlerMapping();
	handlerMapping.setUrlDecode(false);
	Object controller = new Object();
	Map<String, Object> urlMap = new LinkedHashMap<String, Object>();
	urlMap.put("/*/baz", controller);
	handlerMapping.setUrlMap(urlMap);
	handlerMapping.setApplicationContext(new StaticApplicationContext());

	MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo%0a%0dbar/baz");

	HandlerExecutionChain hec = handlerMapping.getHandler(request);
	assertNotNull(hec);
	assertSame(controller, hec.getHandler());
}
 
@Test
public void requestMappingHandlerMapping() throws Exception {
	ApplicationContext context = initContext(WebConfig.class, ScopedController.class, ScopedProxyController.class);
	RequestMappingHandlerMapping handlerMapping = context.getBean(RequestMappingHandlerMapping.class);
	assertEquals(0, handlerMapping.getOrder());

	HandlerExecutionChain chain = handlerMapping.getHandler(new MockHttpServletRequest("GET", "/"));
	assertNotNull(chain);
	assertNotNull(chain.getInterceptors());
	assertEquals(ConversionServiceExposingInterceptor.class, chain.getInterceptors()[0].getClass());

	chain = handlerMapping.getHandler(new MockHttpServletRequest("GET", "/scoped"));
	assertNotNull("HandlerExecutionChain for '/scoped' mapping should not be null.", chain);

	chain = handlerMapping.getHandler(new MockHttpServletRequest("GET", "/scopedProxy"));
	assertNotNull("HandlerExecutionChain for '/scopedProxy' mapping should not be null.", chain);
}
 
源代码14 项目: java-technology-stack   文件: MvcNamespaceTests.java
@Test
public void testDefaultServletHandlerWithOptionalAttributes() throws Exception {
	loadBeanDefinitions("mvc-config-default-servlet-optional-attrs.xml");

	HttpRequestHandlerAdapter adapter = appContext.getBean(HttpRequestHandlerAdapter.class);
	assertNotNull(adapter);

	DefaultServletHttpRequestHandler handler = appContext.getBean(DefaultServletHttpRequestHandler.class);
	assertNotNull(handler);

	SimpleUrlHandlerMapping mapping = appContext.getBean(SimpleUrlHandlerMapping.class);
	assertNotNull(mapping);
	assertEquals(Ordered.LOWEST_PRECEDENCE, mapping.getOrder());

	MockHttpServletRequest request = new MockHttpServletRequest();
	request.setRequestURI("/foo.css");
	request.setMethod("GET");

	HandlerExecutionChain chain = mapping.getHandler(request);
	assertTrue(chain.getHandler() instanceof DefaultServletHttpRequestHandler);

	MockHttpServletResponse response = new MockHttpServletResponse();
	ModelAndView mv = adapter.handle(request, response, chain.getHandler());
	assertNull(mv);
}
 
源代码15 项目: spring4-understanding   文件: CrossOriginTests.java
@Test
public void preFlightRequest() throws Exception {
	this.handlerMapping.registerHandler(new MethodLevelController());
	this.request.setMethod("OPTIONS");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET");
	this.request.setRequestURI("/default");
	HandlerExecutionChain chain = this.handlerMapping.getHandler(request);
	CorsConfiguration config = getCorsConfiguration(chain, true);
	assertNotNull(config);
	assertArrayEquals(new String[]{"GET"}, config.getAllowedMethods().toArray());
	assertArrayEquals(new String[]{"*"}, config.getAllowedOrigins().toArray());
	assertTrue(config.getAllowCredentials());
	assertArrayEquals(new String[]{"*"}, config.getAllowedHeaders().toArray());
	assertTrue(CollectionUtils.isEmpty(config.getExposedHeaders()));
	assertEquals(new Long(1800), config.getMaxAge());
}
 
源代码16 项目: spring4-understanding   文件: CrossOriginTests.java
@Test
public void ambiguousProducesPreFlightRequest() throws Exception {
	this.handlerMapping.registerHandler(new MethodLevelController());
	this.request.setMethod("OPTIONS");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET");
	this.request.setRequestURI("/ambiguous-produces");
	HandlerExecutionChain chain = this.handlerMapping.getHandler(request);
	CorsConfiguration config = getCorsConfiguration(chain, true);
	assertNotNull(config);
	assertArrayEquals(new String[]{"*"}, config.getAllowedMethods().toArray());
	assertArrayEquals(new String[]{"*"}, config.getAllowedOrigins().toArray());
	assertArrayEquals(new String[]{"*"}, config.getAllowedHeaders().toArray());
	assertTrue(config.getAllowCredentials());
	assertTrue(CollectionUtils.isEmpty(config.getExposedHeaders()));
	assertNull(config.getMaxAge());
}
 
@Test
public void requestMappingHandlerMapping() throws Exception {
	ApplicationContext context = initContext(WebConfig.class, ScopedController.class, ScopedProxyController.class);
	RequestMappingHandlerMapping handlerMapping = context.getBean(RequestMappingHandlerMapping.class);
	assertEquals(0, handlerMapping.getOrder());

	HandlerExecutionChain chain = handlerMapping.getHandler(new MockHttpServletRequest("GET", "/"));
	assertNotNull(chain);
	assertNotNull(chain.getInterceptors());
	assertEquals(ConversionServiceExposingInterceptor.class, chain.getInterceptors()[0].getClass());

	chain = handlerMapping.getHandler(new MockHttpServletRequest("GET", "/scoped"));
	assertNotNull("HandlerExecutionChain for '/scoped' mapping should not be null.", chain);

	chain = handlerMapping.getHandler(new MockHttpServletRequest("GET", "/scopedProxy"));
	assertNotNull("HandlerExecutionChain for '/scopedProxy' mapping should not be null.", chain);
}
 
源代码18 项目: foremast   文件: HandlerMappingIntrospector.java
/**
 * Find the {@link HandlerMapping} that would handle the given request and
 * return it as a {@link MatchableHandlerMapping} that can be used to test
 * request-matching criteria.
 * <p>If the matching HandlerMapping is not an instance of
 * {@link MatchableHandlerMapping}, an IllegalStateException is raised.
 * @param request the current request
 * @return the resolved matcher, or {@code null}
 * @throws Exception if any of the HandlerMapping's raise an exception
 */
public HandlerExecutionChain getHandlerExecutionChain(HttpServletRequest request) throws Exception {
    Assert.notNull(this.handlerMappings, "Handler mappings not initialized");
    HttpServletRequest wrapper = new RequestAttributeChangeIgnoringWrapper(request);
    for (HandlerMapping handlerMapping : this.handlerMappings) {
        Object handler = handlerMapping.getHandler(wrapper);
        if (handler == null) {
            continue;
        }
        if (handler instanceof HandlerExecutionChain) {
            return (HandlerExecutionChain)handler;
        }
        throw new IllegalStateException("HandlerMapping is not a MatchableHandlerMapping");
    }
    return null;
}
 
源代码19 项目: spring4-understanding   文件: MvcNamespaceTests.java
@Test(expected = TypeMismatchException.class)
public void testCustomConversionService() throws Exception {
	loadBeanDefinitions("mvc-config-custom-conversion-service.xml", 14);

	RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
	assertNotNull(mapping);
	mapping.setDefaultHandler(handlerMethod);

	// default web binding initializer behavior test
	MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
	request.setRequestURI("/accounts/12345");
	request.addParameter("date", "2009-10-31");
	MockHttpServletResponse response = new MockHttpServletResponse();

	HandlerExecutionChain chain = mapping.getHandler(request);
	assertEquals(1, chain.getInterceptors().length);
	assertTrue(chain.getInterceptors()[0] instanceof ConversionServiceExposingInterceptor);
	ConversionServiceExposingInterceptor interceptor = (ConversionServiceExposingInterceptor) chain.getInterceptors()[0];
	interceptor.preHandle(request, response, handler);
	assertSame(appContext.getBean("conversionService"), request.getAttribute(ConversionService.class.getName()));

	RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
	assertNotNull(adapter);
	adapter.handle(request, response, handlerMethod);
}
 
源代码20 项目: java-technology-stack   文件: CrossOriginTests.java
@Test
public void ambiguousHeaderPreFlightRequest() throws Exception {
	this.handlerMapping.registerHandler(new MethodLevelController());
	this.request.setMethod("OPTIONS");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "header1");
	this.request.setRequestURI("/ambiguous-header");
	HandlerExecutionChain chain = this.handlerMapping.getHandler(request);
	CorsConfiguration config = getCorsConfiguration(chain, true);
	assertNotNull(config);
	assertArrayEquals(new String[] {"*"}, config.getAllowedMethods().toArray());
	assertArrayEquals(new String[] {"*"}, config.getAllowedOrigins().toArray());
	assertArrayEquals(new String[] {"*"}, config.getAllowedHeaders().toArray());
	assertTrue(config.getAllowCredentials());
	assertTrue(CollectionUtils.isEmpty(config.getExposedHeaders()));
	assertNull(config.getMaxAge());
}
 
@Test
public void testRequestMappingMethod() throws Exception {
	String datePattern = "MM:dd:yyyy";
	SimpleDateFormat dateFormat = new SimpleDateFormat(datePattern);
	String dateA = "11:01:2011";
	String dateB = "11:02:2011";

	MockHttpServletRequest request = new MockHttpServletRequest("POST", "/path1/path2");
	request.setParameter("datePattern", datePattern);
	request.addHeader("header1", dateA);
	request.addHeader("header2", dateB);

	HandlerExecutionChain chain = handlerMapping.getHandler(request);
	assertNotNull(chain);

	ModelAndView mav = handlerAdapter.handle(request, new MockHttpServletResponse(), chain.getHandler());

	assertEquals("model attr1:", dateFormat.parse(dateA), mav.getModel().get("attr1"));
	assertEquals("model attr2:", dateFormat.parse(dateB), mav.getModel().get("attr2"));

	MockHttpServletResponse response = new MockHttpServletResponse();
	exceptionResolver.resolveException(request, response, chain.getHandler(), new Exception("failure"));
	assertEquals("text/plain;charset=ISO-8859-1", response.getHeader("Content-Type"));
	assertEquals("failure", response.getContentAsString());
}
 
@Test
public void preflightRequestWithMappedCorsConfiguration() throws Exception {
	CorsConfiguration config = new CorsConfiguration();
	config.addAllowedOrigin("*");
	this.handlerMapping.setCorsConfigurations(Collections.singletonMap("/foo", config));
	this.request.setMethod(RequestMethod.OPTIONS.name());
	this.request.setRequestURI("/foo");
	this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET");
	HandlerExecutionChain chain = handlerMapping.getHandler(this.request);
	assertNotNull(chain);
	assertNotNull(chain.getHandler());
	assertTrue(chain.getHandler().getClass().getSimpleName().equals("PreFlightHandler"));
	config = getCorsConfiguration(chain, true);
	assertNotNull(config);
	assertArrayEquals(config.getAllowedOrigins().toArray(), new String[]{"*"});
}
 
源代码23 项目: spring4-understanding   文件: CrossOriginTests.java
@Test
public void ambiguousHeaderPreFlightRequest() throws Exception {
	this.handlerMapping.registerHandler(new MethodLevelController());
	this.request.setMethod("OPTIONS");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET");
	this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "header1");
	this.request.setRequestURI("/ambiguous-header");
	HandlerExecutionChain chain = this.handlerMapping.getHandler(request);
	CorsConfiguration config = getCorsConfiguration(chain, true);
	assertNotNull(config);
	assertArrayEquals(new String[]{"*"}, config.getAllowedMethods().toArray());
	assertArrayEquals(new String[]{"*"}, config.getAllowedOrigins().toArray());
	assertArrayEquals(new String[]{"*"}, config.getAllowedHeaders().toArray());
	assertTrue(config.getAllowCredentials());
	assertTrue(CollectionUtils.isEmpty(config.getExposedHeaders()));
	assertNull(config.getMaxAge());
}
 
源代码24 项目: spring4-understanding   文件: MvcNamespaceTests.java
@Test
public void testDefaultServletHandler() throws Exception {
	loadBeanDefinitions("mvc-config-default-servlet.xml", 6);

	HttpRequestHandlerAdapter adapter = appContext.getBean(HttpRequestHandlerAdapter.class);
	assertNotNull(adapter);

	DefaultServletHttpRequestHandler handler = appContext.getBean(DefaultServletHttpRequestHandler.class);
	assertNotNull(handler);

	SimpleUrlHandlerMapping mapping = appContext.getBean(SimpleUrlHandlerMapping.class);
	assertNotNull(mapping);
	assertEquals(Ordered.LOWEST_PRECEDENCE, mapping.getOrder());

	MockHttpServletRequest request = new MockHttpServletRequest();
	request.setRequestURI("/foo.css");
	request.setMethod("GET");

	HandlerExecutionChain chain = mapping.getHandler(request);
	assertTrue(chain.getHandler() instanceof DefaultServletHttpRequestHandler);

	MockHttpServletResponse response = new MockHttpServletResponse();
	ModelAndView mv = adapter.handle(request, response, chain.getHandler());
	assertNull(mv);
}
 
@Test
public void testRequestMappingMethod() throws Exception {
	String datePattern = "MM:dd:yyyy";
	SimpleDateFormat dateFormat = new SimpleDateFormat(datePattern);
	String dateA = "11:01:2011";
	String dateB = "11:02:2011";

	MockHttpServletRequest request = new MockHttpServletRequest("POST", "/path1/path2");
	request.setParameter("datePattern", datePattern);
	request.addHeader("header1", dateA);
	request.addHeader("header2", dateB);

	HandlerExecutionChain chain = handlerMapping.getHandler(request);
	assertNotNull(chain);

	ModelAndView mav = handlerAdapter.handle(request, new MockHttpServletResponse(), chain.getHandler());

	assertEquals("model attr1:", dateFormat.parse(dateA), mav.getModel().get("attr1"));
	assertEquals("model attr2:", dateFormat.parse(dateB), mav.getModel().get("attr2"));

	MockHttpServletResponse response = new MockHttpServletResponse();
	exceptionResolver.resolveException(request, response, chain.getHandler(), new Exception("failure"));
	assertEquals("text/plain;charset=ISO-8859-1", response.getHeader("Content-Type"));
	assertEquals("failure", response.getContentAsString());
}
 
@Override
@Nullable
public CorsConfiguration getCorsConfiguration(HttpServletRequest request) {
	Assert.notNull(this.handlerMappings, "Handler mappings not initialized");
	HttpServletRequest wrapper = new RequestAttributeChangeIgnoringWrapper(request);
	for (HandlerMapping handlerMapping : this.handlerMappings) {
		HandlerExecutionChain handler = null;
		try {
			handler = handlerMapping.getHandler(wrapper);
		}
		catch (Exception ex) {
			// Ignore
		}
		if (handler == null) {
			continue;
		}
		if (handler.getInterceptors() != null) {
			for (HandlerInterceptor interceptor : handler.getInterceptors()) {
				if (interceptor instanceof CorsConfigurationSource) {
					return ((CorsConfigurationSource) interceptor).getCorsConfiguration(wrapper);
				}
			}
		}
		if (handler.getHandler() instanceof CorsConfigurationSource) {
			return ((CorsConfigurationSource) handler.getHandler()).getCorsConfiguration(wrapper);
		}
	}
	return null;
}
 
源代码27 项目: spring-analysis-note   文件: CrossOriginTests.java
@Test
public void noAnnotationWithoutOrigin() throws Exception {
	this.handlerMapping.registerHandler(new MethodLevelController());
	MockHttpServletRequest request = new MockHttpServletRequest("GET", "/no");
	HandlerExecutionChain chain = this.handlerMapping.getHandler(request);
	assertNull(getCorsConfiguration(chain, false));
}
 
源代码28 项目: spring-analysis-note   文件: CrossOriginTests.java
@Test  // SPR-12931
public void noAnnotationPostWithOrigin() throws Exception {
	this.handlerMapping.registerHandler(new MethodLevelController());
	this.request.setMethod("POST");
	this.request.setRequestURI("/no");
	HandlerExecutionChain chain = this.handlerMapping.getHandler(request);
	assertNull(getCorsConfiguration(chain, false));
}
 
@Override
protected HandlerExecutionChain getHandlerExecutionChain(Object handler, HttpServletRequest request) {
    HandlerExecutionChain chain = super.getHandlerExecutionChain(handler, request);
    HandlerMethod hm = (HandlerMethod) handler;
    HandlerInterceptor[] interceptors = detectInterceptors(hm.getMethod());
    chain.addInterceptors(interceptors);
    return chain;
}
 
private HandlerExecutionChain getHandler(MockHttpServletRequest req) throws Exception {
	HandlerExecutionChain hec = hm.getHandler(req);
	HandlerInterceptor[] interceptors = hec.getInterceptors();
	if (interceptors != null) {
		for (HandlerInterceptor interceptor : interceptors) {
			interceptor.preHandle(req, null, hec.getHandler());
		}
	}
	return hec;
}
 
 同包方法