Example usage for org.springframework.boot.web.servlet FilterRegistrationBean getFilter

List of usage examples for org.springframework.boot.web.servlet FilterRegistrationBean getFilter

Introduction

In this page you can find the example usage for org.springframework.boot.web.servlet FilterRegistrationBean getFilter.

Prototype

@Override
    public T getFilter() 

Source Link

Usage

From source file:net.bull.javamelody.TestJavaMelodyAutoConfiguration.java

/**
 * test.//from  ww w  . j  a  v  a 2s .  c om
 */
@SuppressWarnings("unchecked")
@Test
public void testJavaMelodyAutoConfigurationIsCreated() {
    // It should create a session listener.
    final ServletListenerRegistrationBean<EventListener> sessionListenerRegistrationBean = context
            .getBean(ServletListenerRegistrationBean.class);
    assertThat(sessionListenerRegistrationBean).isNotNull();

    // It should create a registration bean named "javamelody-registration".
    final Object registrationBean = context.getBean(JavaMelodyAutoConfiguration.REGISTRATION_BEAN_NAME);
    assertThat(registrationBean).isNotNull();
    assertThat(registrationBean).isInstanceOf(FilterRegistrationBean.class);

    // It should create a filter registration bean with the appropriately configured monitoring filter.
    final FilterRegistrationBean filterRegistrationBean = (FilterRegistrationBean) registrationBean;
    assertThat(filterRegistrationBean.getFilter()).isNotNull();
    assertThat(filterRegistrationBean.getFilter()).isInstanceOf(MonitoringFilter.class);
    assertThat(filterRegistrationBean.getInitParameters()).containsEntry("log", "true");
    assertThat(filterRegistrationBean.getInitParameters()).containsEntry("monitoring-path", "/test/path");
    assertThat(filterRegistrationBean.getUrlPatterns()).containsExactly("/*");

    // It should create the monitoring filter with the application type "Spring Boot".
    final MonitoringFilter monitoringFilter = (MonitoringFilter) filterRegistrationBean.getFilter();
    assertThat(monitoringFilter.getApplicationType()).isEqualTo("Spring Boot");

    // It should create an auto-proxy creator.
    final DefaultAdvisorAutoProxyCreator autoProxyCreator = context
            .getBean(DefaultAdvisorAutoProxyCreator.class);
    assertThat(autoProxyCreator).isNotNull();

    // It should create a bean post-processor for data sources.
    final SpringDataSourceBeanPostProcessor dataSourcePostProcessor = context
            .getBean(SpringDataSourceBeanPostProcessor.class);
    assertThat(dataSourcePostProcessor).isNotNull();
    // Cannot test excluded data sources since there is no public accessor for that.

    // It should create interceptors to monitor Spring services and controllers.
    final Map<String, MonitoringSpringAdvisor> springAdvisors = context
            .getBeansOfType(MonitoringSpringAdvisor.class);
    boolean monitoredWithAdvisorFound = false;
    int stereotypeAdvisorsCount = 0;
    for (final MonitoringSpringAdvisor springAdvisor : springAdvisors.values()) {
        if (springAdvisor.getPointcut() instanceof MonitoredWithAnnotationPointcut) {
            monitoredWithAdvisorFound = true;
        } else if (springAdvisor.getPointcut() instanceof AnnotationMatchingPointcut) {
            stereotypeAdvisorsCount++;
            // Maybe use synthetic @Service, @Controller and @RestController classes to check if point cuts match.
        }
    }
    assertThat(monitoredWithAdvisorFound).isTrue();
    assertThat(stereotypeAdvisorsCount).isEqualTo(3);

    // It should create a bean post-processor for rest templates.
    final SpringRestTemplateBeanPostProcessor restTemplatePostProcessor = context
            .getBean(SpringRestTemplateBeanPostProcessor.class);
    assertThat(restTemplatePostProcessor).isNotNull();
}

From source file:com.stormpath.shiro.spring.boot.autoconfigure.StormpathShiroWebAutoConfiguration.java

@Bean
public ShiroPrioritizedFilterChainResolver shiroPrioritizedFilterChainResolver(
        @Qualifier("filterShiroFilterRegistrationBean") FilterRegistrationBean filterShiroFilterRegistrationBean,
        @Qualifier("stormpathFilter") FilterRegistrationBean stormpathFilter) {

    if (!(filterShiroFilterRegistrationBean.getFilter() instanceof AbstractShiroFilter)) {
        throw new ConfigurationException(
                "Shiro filter registration bean did not contain a AbstractShiroFitler");
    }//from  w  w w .  j  a  v  a  2 s.  c  om

    AbstractShiroFilter filter = (AbstractShiroFilter) filterShiroFilterRegistrationBean.getFilter();

    FilterChainResolver originalFilterChainResolver = filter.getFilterChainResolver();

    List<Filter> prioritizedFilters = new ArrayList<>();
    prioritizedFilters.add(stormpathFilter.getFilter());
    stormpathFilter.setEnabled(false);
    prioritizedFilters.add(new StormpathShiroPassiveLoginFilter());
    ShiroPrioritizedFilterChainResolver prioritizedFilterChainResolver = new ShiroPrioritizedFilterChainResolver(
            originalFilterChainResolver, prioritizedFilters);

    filter.setFilterChainResolver(prioritizedFilterChainResolver);

    return prioritizedFilterChainResolver;
}

From source file:org.springframework.boot.test.autoconfigure.web.servlet.SpringBootMockMvcBuilderCustomizer.java

private void addFilter(ConfigurableMockMvcBuilder<?> builder, FilterRegistrationBean registration) {
    addFilter(builder, registration.getFilter(), registration.getUrlPatterns());
}