Пример #1
0
  /** Initializes the caching HTTP Headers Filter. */
  private void initCachingHttpHeadersFilter(
      ServletContext servletContext, EnumSet<DispatcherType> disps) {
    log.debug("Registering Caching HTTP Headers Filter");
    FilterRegistration.Dynamic cachingHttpHeadersFilter =
        servletContext.addFilter("cachingHttpHeadersFilter", new CachingHttpHeadersFilter(env));

    cachingHttpHeadersFilter.addMappingForUrlPatterns(disps, true, "/assets/*");
    cachingHttpHeadersFilter.addMappingForUrlPatterns(disps, true, "/scripts/*");
    cachingHttpHeadersFilter.setAsyncSupported(true);
  }
Пример #2
0
 private void addCacheFilter(ServletContext context) {
   FilterRegistration.Dynamic filter =
       context.addFilter(CACHE_FILTER_NAME, CacheServletFilter.class);
   filter.setAsyncSupported(true);
   String[] mappings =
       new String[] {"/", "*.html", "*.css", "*.js", "*.ejs", "*.less", "*.hbs", "*.map"};
   for (String mapping : mappings) {
     filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, mapping);
   }
 }
Пример #3
0
  @Override
  public void contextInitialized(ServletContextEvent sce) {
    ServletContext servletContext = sce.getServletContext();
    log.info("Web application configuration");

    log.debug("Configuring Spring root application context");
    AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
    rootContext.register(ApplicationConfiguration.class);
    rootContext.refresh();

    servletContext.setAttribute(
        WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, rootContext);

    log.debug("Configuring Spring Web application context");
    AnnotationConfigWebApplicationContext dispatcherServletConfig =
        new AnnotationConfigWebApplicationContext();
    dispatcherServletConfig.setParent(rootContext);
    dispatcherServletConfig.register(DispatcherServletConfig.class);

    log.debug("Registering Spring MVC Servlet");
    ServletRegistration.Dynamic dispatcherServlet =
        servletContext.addServlet("dispatcher", new DispatcherServlet(dispatcherServletConfig));
    dispatcherServlet.addMapping("/tatami/*");
    dispatcherServlet.setLoadOnStartup(2);

    log.debug("Registering Meteor Servlet for online users");

    ServletRegistration.Dynamic meteorServlet =
        servletContext.addServlet("atmosphereServlet", new MeteorServlet());

    meteorServlet.setAsyncSupported(true);
    meteorServlet.addMapping("/realtime/*");
    meteorServlet.setLoadOnStartup(3);

    meteorServlet.setInitParameter(
        "org.atmosphere.servlet", "fr.ippon.tatami.web.atmosphere.users.OnlineUsersServlet");

    meteorServlet.setInitParameter(
        "org.atmosphere.cpr.broadcasterCacheClass", "org.atmosphere.cache.HeaderBroadcasterCache");

    meteorServlet.setInitParameter(
        "org.atmosphere.cpr.broadcastFilterClasses",
        "org.atmosphere.client.TrackMessageSizeFilter");

    meteorServlet.setInitParameter("org.atmosphere.useNative", "true");

    log.debug("Registering Spring Security Filter");
    FilterRegistration.Dynamic springSecurityFilter =
        servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
    EnumSet<DispatcherType> disps =
        EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC);
    springSecurityFilter.addMappingForServletNames(disps, true, "dispatcher", "atmosphereServlet");

    log.debug("Web application fully configured");
  }
Пример #4
0
 private void addGzipFilter(ServletContext context) {
   FilterRegistration.Dynamic filter =
       context.addFilter(GZIP_FILTER_NAME, ApplicationGzipFilter.class);
   filter.setInitParameter(
       "mimeTypes",
       "application/json,text/html,text/plain,text/xml,application/xhtml+xml,text/css,application/javascript,image/svg+xml");
   filter.setAsyncSupported(true);
   String[] mappings = new String[] {"/*"};
   for (String mapping : mappings) {
     filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, mapping);
   }
 }
Пример #5
0
  @Override
  public void onStartup(ServletContext servletContext) throws ServletException {
    AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
    context.setConfigLocation("com.sms.config");

    // 加入logback监听器
    servletContext.addListener(new LogbackConfigListener());

    // 加入spring监听器
    servletContext.addListener(new ContextLoaderListener(context));

    EnumSet<DispatcherType> dispatcherTypes =
        EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD);

    // 加入spring mvc配置
    ServletRegistration.Dynamic dispatcher =
        servletContext.addServlet("spring-mvc", new DispatcherServlet(context));
    dispatcher.setLoadOnStartup(1);
    dispatcher.addMapping("/");

    // 加入OpenEntityManagerInViewFilter
    FilterRegistration.Dynamic openEntityManagerInViewFilter =
        servletContext.addFilter(
            "openEntityManagerInViewFilter", OpenEntityManagerInViewFilter.class);
    openEntityManagerInViewFilter.addMappingForUrlPatterns(dispatcherTypes, true, "/*");

    // 加入security过滤器
    FilterRegistration.Dynamic securityFilterChain =
        servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
    securityFilterChain.addMappingForUrlPatterns(dispatcherTypes, true, "/*");

    // 加入Spring编码过滤器
    CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
    characterEncodingFilter.setEncoding("UTF-8");
    characterEncodingFilter.setForceEncoding(true);

    FilterRegistration.Dynamic encodingFilter =
        servletContext.addFilter("characterEncodingFilter", characterEncodingFilter);
    encodingFilter.addMappingForUrlPatterns(dispatcherTypes, true, "/");
  }
Пример #6
0
  /** Initializes the static resources production Filter. */
  private void initStaticResourcesProductionFilter(
      ServletContext servletContext, EnumSet<DispatcherType> disps) {

    log.debug("Registering static resources production Filter");
    FilterRegistration.Dynamic staticResourcesProductionFilter =
        servletContext.addFilter(
            "staticResourcesProductionFilter", new StaticResourcesProductionFilter());

    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/");
    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/index.html");
    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/assets/*");
    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/scripts/*");
    staticResourcesProductionFilter.setAsyncSupported(true);
  }
Пример #7
0
 /** Initializes the GZip filter. */
 private void initGzipFilter(ServletContext servletContext, EnumSet<DispatcherType> disps) {
   log.debug("Registering GZip Filter");
   FilterRegistration.Dynamic compressingFilter =
       servletContext.addFilter("gzipFilter", new GZipServletFilter());
   Map<String, String> parameters = new HashMap<>();
   compressingFilter.setInitParameters(parameters);
   compressingFilter.addMappingForUrlPatterns(disps, true, "*.css");
   compressingFilter.addMappingForUrlPatterns(disps, true, "*.json");
   compressingFilter.addMappingForUrlPatterns(disps, true, "*.html");
   compressingFilter.addMappingForUrlPatterns(disps, true, "*.js");
   compressingFilter.addMappingForUrlPatterns(disps, true, "*.svg");
   compressingFilter.addMappingForUrlPatterns(disps, true, "*.ttf");
   compressingFilter.addMappingForUrlPatterns(disps, true, "/api/*");
   compressingFilter.addMappingForUrlPatterns(disps, true, "/metrics/*");
   compressingFilter.setAsyncSupported(true);
 }
Пример #8
0
  /** Initializes Metrics. */
  private void initMetrics(ServletContext servletContext, EnumSet<DispatcherType> disps) {
    log.debug("Initializing Metrics registries");
    servletContext.setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, metricRegistry);
    servletContext.setAttribute(MetricsServlet.METRICS_REGISTRY, metricRegistry);

    log.debug("Registering Metrics Filter");
    FilterRegistration.Dynamic metricsFilter =
        servletContext.addFilter("webappMetricsFilter", new InstrumentedFilter());

    metricsFilter.addMappingForUrlPatterns(disps, true, "/*");
    metricsFilter.setAsyncSupported(true);

    log.debug("Registering Metrics Servlet");
    ServletRegistration.Dynamic metricsAdminServlet =
        servletContext.addServlet("metricsServlet", new MetricsServlet());

    metricsAdminServlet.addMapping("/metrics/metrics/*");
    metricsAdminServlet.setAsyncSupported(true);
    metricsAdminServlet.setLoadOnStartup(2);
  }
  @Override
  public void onStartup(ServletContext sc) throws ServletException {
    SLF4JBridgeHandler.install();
    
    log.debug("${artifactId} starting up...");

    // Create the 'root' Spring application context
    AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
    ctx.register(SpringConfiguration.class);
    ctx.scan("${package}");
    ctx.refresh();

    // Manages the lifecycle
    sc.addListener(new ContextLoaderListener(ctx));
    sc.addListener(new ContextCleanupListener());
    
    // Filters
    sc.addFilter("OpenEntityInViewFilter", OpenEntityManagerInViewFilter.class).addMappingForUrlPatterns(null, true, "/*");
    

    log.debug("${package} initialized.");
  }
Пример #10
0
 @Override
 public FilterRegistration.Dynamic addFilter(String s, Class<? extends Filter> aClass) {
   return proxy.addFilter(s, aClass);
 }
Пример #11
0
 @Override
 public FilterRegistration.Dynamic addFilter(String s, Filter filter) {
   return proxy.addFilter(s, filter);
 }
Пример #12
0
 @Override
 public FilterRegistration.Dynamic addFilter(String s, String s1) {
   return proxy.addFilter(s, s1);
 }
 public Dynamic addFilter(String arg0, Class<? extends Filter> arg1) {
   return servletContext.addFilter(arg0, arg1);
 }
 public Dynamic addFilter(String arg0, Filter arg1) {
   return servletContext.addFilter(arg0, arg1);
 }
Пример #15
0
 private void addDebugFilter(ServletContext context) {
   FilterRegistration.Dynamic filter =
       context.addFilter(DEBUG_FILTER_NAME, RequestDebugFilter.class);
   filter.setAsyncSupported(true);
   filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*");
 }