Java 类org.springframework.web.servlet.handler.MappedInterceptor 实例源码

项目:spring4-understanding    文件:InterceptorRegistration.java   
/**
 * Returns the underlying interceptor. If URL patterns are provided the returned type is
 * {@link MappedInterceptor}; otherwise {@link HandlerInterceptor}.
 */
protected Object getInterceptor() {
    if (this.includePatterns.isEmpty() && this.excludePatterns.isEmpty()) {
        return this.interceptor;
    }

    String[] include = toArray(this.includePatterns);
    String[] exclude = toArray(this.excludePatterns);
    MappedInterceptor mappedInterceptor = new MappedInterceptor(include, exclude, this.interceptor);

    if (this.pathMatcher != null) {
        mappedInterceptor.setPathMatcher(this.pathMatcher);
    }

    return mappedInterceptor;
}
项目:spring4-understanding    文件:ResourcesBeanDefinitionParser.java   
private void registerUrlProvider(ParserContext parserContext, Object source) {
    if (!parserContext.getRegistry().containsBeanDefinition(RESOURCE_URL_PROVIDER)) {
        RootBeanDefinition urlProvider = new RootBeanDefinition(ResourceUrlProvider.class);
        urlProvider.setSource(source);
        urlProvider.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
        parserContext.getRegistry().registerBeanDefinition(RESOURCE_URL_PROVIDER, urlProvider);
        parserContext.registerComponent(new BeanComponentDefinition(urlProvider, RESOURCE_URL_PROVIDER));

        RootBeanDefinition interceptor = new RootBeanDefinition(ResourceUrlProviderExposingInterceptor.class);
        interceptor.setSource(source);
        interceptor.getConstructorArgumentValues().addIndexedArgumentValue(0, urlProvider);

        RootBeanDefinition mappedInterceptor = new RootBeanDefinition(MappedInterceptor.class);
        mappedInterceptor.setSource(source);
        mappedInterceptor.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
        mappedInterceptor.getConstructorArgumentValues().addIndexedArgumentValue(0, (Object) null);
        mappedInterceptor.getConstructorArgumentValues().addIndexedArgumentValue(1, interceptor);
        String mappedInterceptorName = parserContext.getReaderContext().registerWithGeneratedName(mappedInterceptor);
        parserContext.registerComponent(new BeanComponentDefinition(mappedInterceptor, mappedInterceptorName));
    }
}
项目:spring4-understanding    文件:RequestMappingInfoHandlerMappingTests.java   
@Test
public void mappedInterceptors() throws Exception {
    String path = "/foo";
    HandlerInterceptor interceptor = new HandlerInterceptorAdapter() {};
    MappedInterceptor mappedInterceptor = new MappedInterceptor(new String[] {path}, interceptor);

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

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

    chain = hm.getHandler(new MockHttpServletRequest("GET", "/invalid"));
    assertNull(chain);
}
项目:spring4-understanding    文件:InterceptorRegistryTests.java   
private List<HandlerInterceptor> getInterceptorsForPath(String lookupPath) {
    PathMatcher pathMatcher = new AntPathMatcher();
    List<HandlerInterceptor> result = new ArrayList<HandlerInterceptor>();
    for (Object interceptor : this.registry.getInterceptors()) {
        if (interceptor instanceof MappedInterceptor) {
            MappedInterceptor mappedInterceptor = (MappedInterceptor) interceptor;
            if (mappedInterceptor.matches(lookupPath, pathMatcher)) {
                result.add(mappedInterceptor.getInterceptor());
            }
        }
        else if (interceptor instanceof HandlerInterceptor) {
            result.add((HandlerInterceptor) interceptor);
        }
        else {
            fail("Unexpected interceptor type: " + interceptor.getClass().getName());
        }
    }
    return result;
}
项目:class-guard    文件:RequestMappingInfoHandlerMappingTests.java   
@Test
public void mappedInterceptors() throws Exception {
    String path = "/foo";
    HandlerInterceptor interceptor = new HandlerInterceptorAdapter() {};
    MappedInterceptor mappedInterceptor = new MappedInterceptor(new String[] {path}, interceptor);

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

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

    chain = hm.getHandler(new MockHttpServletRequest("GET", "/invalid"));
    assertNull(chain);
}
项目:class-guard    文件:InterceptorRegistryTests.java   
private List<HandlerInterceptor> getInterceptorsForPath(String lookupPath) {
    PathMatcher pathMatcher = new AntPathMatcher();
    List<HandlerInterceptor> result = new ArrayList<HandlerInterceptor>();
    for (Object i : registry.getInterceptors()) {
        if (i instanceof MappedInterceptor) {
            MappedInterceptor mappedInterceptor = (MappedInterceptor) i;
            if (mappedInterceptor.matches(lookupPath, pathMatcher)) {
                result.add(mappedInterceptor.getInterceptor());
            }
        }
        else if (i instanceof HandlerInterceptor){
            result.add((HandlerInterceptor) i);
        }
        else {
            fail("Unexpected interceptor type: " + i.getClass().getName());
        }
    }
    return result;
}
项目:spring4-understanding    文件:MvcNamespaceTests.java   
@Test
public void testResources() throws Exception {
    loadBeanDefinitions("mvc-config-resources.xml", 10);

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

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

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

    BeanNameUrlHandlerMapping beanNameMapping = appContext.getBean(BeanNameUrlHandlerMapping.class);
    assertNotNull(beanNameMapping);
    assertEquals(2, beanNameMapping.getOrder());

    ResourceUrlProvider urlProvider = appContext.getBean(ResourceUrlProvider.class);
    assertNotNull(urlProvider);

    MappedInterceptor mappedInterceptor = appContext.getBean(MappedInterceptor.class);
    assertNotNull(urlProvider);
    assertEquals(ResourceUrlProviderExposingInterceptor.class, mappedInterceptor.getInterceptor().getClass());

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

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

    MockHttpServletResponse response = new MockHttpServletResponse();
    for (HandlerInterceptor interceptor : chain.getInterceptors()) {
        interceptor.preHandle(request, response, chain.getHandler());
    }
    ModelAndView mv = adapter.handle(request, response, chain.getHandler());
    assertNull(mv);
}
项目:spring4-understanding    文件:InterceptorRegistryTests.java   
@Test
public void addInterceptorsWithCustomPathMatcher() {
    PathMatcher pathMatcher = Mockito.mock(PathMatcher.class);
    this.registry.addInterceptor(interceptor1).addPathPatterns("/path1/**").pathMatcher(pathMatcher);

    MappedInterceptor mappedInterceptor = (MappedInterceptor) this.registry.getInterceptors().get(0);
    assertSame(pathMatcher, mappedInterceptor.getPathMatcher());
}
项目:spring4-understanding    文件:StandaloneMockMvcBuilder.java   
/**
 * Add interceptors mapped to a set of path patterns.
 */
public StandaloneMockMvcBuilder addMappedInterceptors(String[] pathPatterns, HandlerInterceptor... interceptors) {
    for (HandlerInterceptor interceptor : interceptors) {
        this.mappedInterceptors.add(new MappedInterceptor(pathPatterns, interceptor));
    }
    return this;
}
项目:spring4-understanding    文件:StandaloneMockMvcBuilder.java   
@Override
protected void addInterceptors(InterceptorRegistry registry) {
    for (MappedInterceptor interceptor : mappedInterceptors) {
        InterceptorRegistration registration = registry.addInterceptor(interceptor.getInterceptor());
        if (interceptor.getPathPatterns() != null) {
            registration.addPathPatterns(interceptor.getPathPatterns());
        }
    }
}
项目:feilong-spring    文件:MappedInterceptorBeanToMapBuilder.java   
@Override
public Map<String, Object> build(String beanName,MappedInterceptor mappedInterceptor){
    HandlerInterceptor handlerInterceptor = mappedInterceptor.getInterceptor();
    String[] pathPatterns = mappedInterceptor.getPathPatterns();

    Object readField = getExcludePatterns(mappedInterceptor);

    //---------------------------------------------------------------
    Map<String, Object> map = newLinkedHashMap();
    map.put("handlerInterceptor", handlerInterceptor.getClass().getName());
    map.put("includePatterns", pathPatterns);
    map.put("excludePatterns", readField);
    map.put("beanName", beanName);
    return map;
}
项目:feilong-spring    文件:MappedInterceptorBeanToMapBuilder.java   
/**
 * Gets the exclude patterns.
 *
 * @param mappedInterceptor
 *            the mapped interceptor
 * @return the exclude patterns
 */
private Object getExcludePatterns(MappedInterceptor mappedInterceptor){
    try{
        return FieldUtils.readField(mappedInterceptor, "excludePatterns", true);
    }catch (IllegalAccessException e){
        LOGGER.error("", e);
    }
    return null;
}
项目:class-guard    文件:StandaloneMockMvcBuilder.java   
/**
 * Add interceptors mapped to a set of path patterns.
 */
public StandaloneMockMvcBuilder addMappedInterceptors(String[] pathPatterns, HandlerInterceptor... interceptors) {
    for (HandlerInterceptor interceptor : interceptors) {
        this.mappedInterceptors.add(new MappedInterceptor(pathPatterns, interceptor));
    }
    return this;
}
项目:class-guard    文件:StandaloneMockMvcBuilder.java   
@Override
protected void addInterceptors(InterceptorRegistry registry) {
    for (MappedInterceptor interceptor : mappedInterceptors) {
        InterceptorRegistration registration = registry.addInterceptor(interceptor.getInterceptor());
        if (interceptor.getPathPatterns() != null) {
            registration.addPathPatterns(interceptor.getPathPatterns());
        }
    }
}
项目:class-guard    文件:InterceptorRegistration.java   
/**
 * Returns the underlying interceptor. If URL patterns are provided the returned type is
 * {@link MappedInterceptor}; otherwise {@link HandlerInterceptor}.
 */
protected Object getInterceptor() {
    if (this.includePatterns.isEmpty()) {
        return this.interceptor;
    }
    return new MappedInterceptor(toArray(this.includePatterns), toArray(this.excludePatterns), interceptor);
}
项目:class-guard    文件:InterceptorsBeanDefinitionParser.java   
public BeanDefinition parse(Element element, ParserContext parserContext) {
    CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element));
    parserContext.pushContainingComponent(compDefinition);

    List<Element> interceptors = DomUtils.getChildElementsByTagName(element, "bean", "ref", "interceptor");
    for (Element interceptor : interceptors) {
        RootBeanDefinition mappedInterceptorDef = new RootBeanDefinition(MappedInterceptor.class);
        mappedInterceptorDef.setSource(parserContext.extractSource(interceptor));
        mappedInterceptorDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);

        ManagedList<String> includePatterns = null;
        ManagedList<String> excludePatterns = null;
        Object interceptorBean;
        if ("interceptor".equals(interceptor.getLocalName())) {
            includePatterns = getIncludePatterns(interceptor, "mapping");
            excludePatterns = getIncludePatterns(interceptor, "exclude-mapping");
            Element beanElem = DomUtils.getChildElementsByTagName(interceptor, "bean", "ref").get(0);
            interceptorBean = parserContext.getDelegate().parsePropertySubElement(beanElem, null);
        }
        else {
            interceptorBean = parserContext.getDelegate().parsePropertySubElement(interceptor, null);
        }
        mappedInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(0, includePatterns);
        mappedInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(1, excludePatterns);
        mappedInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(2, interceptorBean);

        String beanName = parserContext.getReaderContext().registerWithGeneratedName(mappedInterceptorDef);
        parserContext.registerComponent(new BeanComponentDefinition(mappedInterceptorDef, beanName));
    }

    parserContext.popAndRegisterContainingComponent();
    return null;
}
项目:molgenis    文件:MolgenisWebAppConfig.java   
@Bean
public MappedInterceptor mappedCorsInterceptor()
{
    /*
     * This way, the cors interceptor is added to the resource handlers as well, if the patterns overlap.
     *
     * See https://jira.spring.io/browse/SPR-10655
     */
    return new MappedInterceptor(new String[] { "/api/**", "/fdp/**" }, corsInterceptor());
}
项目:cmc-pdf-service    文件:DeprecatedApiConfiguration.java   
@Bean
public MappedInterceptor deprecatedApi() {
    return new MappedInterceptor(null, new DeprecatedApiInterceptor());
}
项目:repository-multi-tenancy    文件:TannentIdInterceptorConfigurer.java   
@Bean
public MappedInterceptor myMappedInterceptor() {
    return new MappedInterceptor(new String[]{"/**"}, tannentIdInterceptor);
}
项目:shipping    文件:WebMvcConfig.java   
@Bean
public MappedInterceptor myMappedInterceptor(HTTPMonitoringInterceptor interceptor) {
    return new MappedInterceptor(new String[]{"/**"}, interceptor);
}
项目:SpringbootMultiDatasourceSample    文件:DatasourceConfig.java   
@Bean
public MappedInterceptor interceptorMapping(){
    return new MappedInterceptor(new String[]{"/**"}, datasourceInterceptor());
}
项目:orders    文件:WebMvcConfig.java   
@Bean
public MappedInterceptor myMappedInterceptor(HTTPMonitoringInterceptor interceptor) {
    return new MappedInterceptor(new String[]{"/**"}, interceptor);
}
项目:onetwo    文件:WebInterceptorAdapter.java   
public static MappedInterceptor createMappedInterceptor(WebInterceptorAdapter webi){
    return new MappedInterceptor(webi.getPathPatterns(), webi);
}
项目:springfield    文件:WebmvcConfiguration.java   
@Bean
public MappedInterceptor springfieldWebmvcMappedLocaleChangeInterceptor(){
    MappedInterceptor b = new MappedInterceptor(null, springfieldWebmvcMappedLocaleChangeInterceptorBean());
    return b;
}
项目:springfield    文件:WebmvcConfiguration.java   
@Bean
public MappedInterceptor springfieldWebmvcMappedLoggingInterceptor(){
    MappedInterceptor b = new MappedInterceptor(null, springfieldWebmvcMappedLoggingInterceptorBean());
    return b;
}
项目:springfield    文件:WebmvcConfiguration.java   
@Bean
public MappedInterceptor springfieldWebmvcMappedNavigationInterceptor(){
    MappedInterceptor b = new MappedInterceptor(null, springfieldWebmvcMappedNavigationInterceptorBean());
    return b;
}
项目:springfield    文件:ContextWebmvcBase.java   
@Bean
public MappedInterceptor springfieldMappedInterceptor1(){
    MappedInterceptor b = new MappedInterceptor(null, springfieldHandlerInterceptor1());
    return b;
}
项目:springfield    文件:ContextWebmvcBase.java   
@Bean
public MappedInterceptor springfieldMappedInterceptor2(){
    MappedInterceptor b = new MappedInterceptor(null, springfieldHandlerInterceptor2());
    return b;
}
项目:springfield    文件:ContextWebmvcBase.java   
@Bean
public MappedInterceptor springfieldMappedInterceptor3(){
    MappedInterceptor b = new MappedInterceptor(null, springfieldHandlerInterceptor3());
    return b;
}