@Override public void onStartup(ServletContext servletContext) throws ServletException { //register config classes AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.register(WebMvcConfig.class); rootContext.register(JPAConfig.class); rootContext.register(WebSecurityConfig.class); rootContext.register(ServiceConfig.class); //set session timeout servletContext.addListener(new SessionListener(maxInactiveInterval)); //set dispatcher servlet and mapping ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(rootContext)); dispatcher.addMapping("/"); dispatcher.setLoadOnStartup(1); //register filters FilterRegistration.Dynamic filterRegistration = servletContext.addFilter("endcodingFilter", new CharacterEncodingFilter()); filterRegistration.setInitParameter("encoding", "UTF-8"); filterRegistration.setInitParameter("forceEncoding", "true"); //make sure encodingFilter is matched first filterRegistration.addMappingForUrlPatterns(null, false, "/*"); //disable appending jsessionid to the URL filterRegistration = servletContext.addFilter("disableUrlSessionFilter", new DisableUrlSessionFilter()); filterRegistration.addMappingForUrlPatterns(null, true, "/*"); }
/** * 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("/management/metrics/*"); metricsAdminServlet.setAsyncSupported(true); metricsAdminServlet.setLoadOnStartup(2); }
@Override public void contextInitialized(ServletContextEvent sce) { ServletContext ctx = sce.getServletContext(); ServletRegistration.Dynamic sd = ctx.addServlet("DynamicServlet", "com.creditease.monitorframework.fat.DynamicServlet"); sd.addMapping("/DynamicServlet"); sd.setInitParameter("test", "test"); sd.setLoadOnStartup(1); sd.setAsyncSupported(false); FilterRegistration.Dynamic fd = ctx.addFilter("DynamicFilter", "com.creditease.monitorframework.fat.filters.DynamicFilter"); fd.addMappingForUrlPatterns(null, true, "/DynamicServlet"); fd.setInitParameter("test2", "test2"); fd.setAsyncSupported(false); ctx.addListener("com.creditease.monitorframework.fat.listeners.TestServletInitListener"); }
private void addDispatcherContext(ServletContext container) { // Create the dispatcher servlet's Spring application context AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext(); dispatcherContext.register(SpringDispatcherConfig.class); // Declare <servlet> and <servlet-mapping> for the DispatcherServlet ServletRegistration.Dynamic dispatcher = container.addServlet("ch03-servlet", new DispatcherServlet(dispatcherContext)); dispatcher.addMapping("*.html"); dispatcher.setLoadOnStartup(1); FilterRegistration.Dynamic corsFilter = container.addFilter("corsFilter", new CorsFilter()); corsFilter.setInitParameter("cors.allowed.methods", "GET, POST, HEAD, OPTIONS, PUT, DELETE"); corsFilter.addMappingForUrlPatterns(null, true, "/*"); FilterRegistration.Dynamic filter = container.addFilter("hiddenmethodfilter", new HiddenHttpMethodFilter()); filter.addMappingForServletNames(null, true, "/*"); FilterRegistration.Dynamic multipartFilter = container.addFilter("multipartFilter", new MultipartFilter()); multipartFilter.addMappingForUrlPatterns(null, true, "/*"); }
/** * Configure the given {@link ServletContext} with any servlets, filters, listeners * context-params and attributes necessary for initializing this web application. See examples * {@linkplain WebApplicationInitializer above}. * * @param servletContext the {@code ServletContext} to initialize * @throws ServletException if any call against the given {@code ServletContext} throws a {@code ServletException} */ public void onStartup(ServletContext servletContext) throws ServletException { // Spring Context Bootstrapping AnnotationConfigWebApplicationContext rootAppContext = new AnnotationConfigWebApplicationContext(); rootAppContext.register(AutoPivotConfig.class); servletContext.addListener(new ContextLoaderListener(rootAppContext)); // Set the session cookie name. Must be done when there are several servers (AP, // Content server, ActiveMonitor) with the same URL but running on different ports. // Cookies ignore the port (See RFC 6265). CookieUtil.configure(servletContext.getSessionCookieConfig(), CookieUtil.COOKIE_NAME); // The main servlet/the central dispatcher final DispatcherServlet servlet = new DispatcherServlet(rootAppContext); servlet.setDispatchOptionsRequest(true); Dynamic dispatcher = servletContext.addServlet("springDispatcherServlet", servlet); dispatcher.addMapping("/*"); dispatcher.setLoadOnStartup(1); // Spring Security Filter final FilterRegistration.Dynamic springSecurity = servletContext.addFilter(SPRING_SECURITY_FILTER_CHAIN, new DelegatingFilterProxy()); springSecurity.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); }
@Override public FilterRegistration.Dynamic addFilter(final String filterName, final String className) { ensureNotProgramaticListener(); ensureNotInitialized(); if (deploymentInfo.getFilters().containsKey(filterName)) { return null; } try { FilterInfo filter = new FilterInfo(filterName, (Class<? extends Filter>) deploymentInfo.getClassLoader().loadClass(className)); deploymentInfo.addFilter(filter); deployment.getFilters().addFilter(filter); return new FilterRegistrationImpl(filter, deployment, this); } catch (ClassNotFoundException e) { throw UndertowServletMessages.MESSAGES.cannotLoadClass(className, e); } }
public void collectDynInfo(String methodName, Object res, Object[] args) { if (methodName.equals("addServlet")) { servlets.add((ServletRegistration.Dynamic) res); } else if (methodName.equals("addFilter")) { filters.add((FilterRegistration.Dynamic) res); } else if (methodName.equals("addListener")) { String listenerClassName; if (args[0].getClass().isAssignableFrom(String.class)) { listenerClassName = args[0].toString(); } else if (args[0].getClass().isAssignableFrom(Class.class)) { listenerClassName = ((Class<?>) args[0]).getName(); } else { listenerClassName = args[0].getClass().getName(); } listeners.add(listenerClassName); } }
@Override public void run(@Nonnull final GraphiakConfiguration configuration, @Nonnull final Environment environment) throws Exception { // Enable CORS final FilterRegistration.Dynamic cors = environment.servlets() .addFilter("cors", CrossOriginFilter.class); cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); // get Riak client final RiakClient client = configuration.getRiak().build(); final MetricStore store = new MetricStore(client); environment.lifecycle().manage(new MetricStoreManager(store)); // Configure the Netty TCP server configuration.getNetty().build(environment, store); // Resources environment.jersey().register(new DashboardResource()); environment.jersey().register(new MetricsResource(store)); environment.jersey().register(new EventsResource()); environment.jersey().register(new PingResource()); environment.jersey().register(new VersionResource()); }
@Override public Map<String, ? extends FilterRegistration> getFilterRegistrations() { if (!_enabled) throw new UnsupportedOperationException(); HashMap<String, FilterRegistration> registrations = new HashMap<String, FilterRegistration>(); ServletHandler handler=ServletContextHandler.this.getServletHandler(); FilterHolder[] holders=handler.getFilters(); if (holders!=null) { for (FilterHolder holder : holders) registrations.put(holder.getName(),holder.getRegistration()); } return registrations; }
private void installCorsFilter(Environment environment) { FilterRegistration.Dynamic filter = environment.servlets().addFilter("CORSFilter", CrossOriginFilter.class); filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, environment.getApplicationContext().getContextPath() + "*"); filter.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "GET,PUT,POST,OPTIONS"); filter.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*"); filter.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "Origin, Content-Type, Accept, Authorization"); filter.setInitParameter(CrossOriginFilter.ALLOW_CREDENTIALS_PARAM, "true"); }
@Override public void run(final DeviceUsageTrackerConfig configuration, final Environment environment) { ConfigurationHolder.set(configuration); environment.jersey().register(DeviceResource.class); environment.jersey().register(UserResource.class); environment.jersey().register(ProfileResource.class); environment.jersey().register(ClaimResource.class); environment.jersey().register(DeviceSlackResource.class); environment.jersey().register(DeviceClaimResource.class); // JSON property naming environment.getObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); environment.jersey().register(new CustomExceptionMapper()); // Enable CORS headers final FilterRegistration.Dynamic cors = environment.servlets() .addFilter("CORS", CrossOriginFilter.class); // Configure CORS parameters cors.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*"); cors.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "X-Requested-With,Content-Type,Accept,Origin,Authorization"); cors.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "OPTIONS,GET,PUT,POST,DELETE,HEAD"); // Add URL mapping cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); // Auth environment.jersey().register( new AuthenticatorFeature(environment.metrics(), configuration.getAuthConfig())); }
@Override public FilterRegistration.Dynamic addFilter(String filterName, String className) { if (SecurityUtil.isPackageProtectionEnabled()) { return (FilterRegistration.Dynamic) doPrivileged( "addFilter", new Object[]{filterName, className}); } else { return context.addFilter(filterName, className); } }
@Override public FilterRegistration.Dynamic addFilter(String filterName, Filter filter) { if (SecurityUtil.isPackageProtectionEnabled()) { return (FilterRegistration.Dynamic) doPrivileged("addFilter", new Class[]{String.class, Filter.class}, new Object[]{filterName, filter}); } else { return context.addFilter(filterName, filter); } }
@Override public FilterRegistration.Dynamic addFilter(String filterName, Class<? extends Filter> filterClass) { if (SecurityUtil.isPackageProtectionEnabled()) { return (FilterRegistration.Dynamic) doPrivileged("addFilter", new Class[]{String.class, Class.class}, new Object[]{filterName, filterClass}); } else { return context.addFilter(filterName, filterClass); } }
@Override public FilterRegistration getFilterRegistration(String filterName) { if (SecurityUtil.isPackageProtectionEnabled()) { return (FilterRegistration) doPrivileged( "getFilterRegistration", new Object[]{filterName}); } else { return context.getFilterRegistration(filterName); } }
@Override @SuppressWarnings("unchecked") // doPrivileged() returns the correct type public Map<String, ? extends FilterRegistration> getFilterRegistrations() { if (SecurityUtil.isPackageProtectionEnabled()) { return (Map<String, ? extends FilterRegistration>) doPrivileged( "getFilterRegistrations", null); } else { return context.getFilterRegistrations(); } }
@Override public FilterRegistration getFilterRegistration(String filterName) { FilterDef filterDef = context.findFilterDef(filterName); if (filterDef == null) { return null; } return new ApplicationFilterRegistration(filterDef, context); }
@Override public Map<String, ? extends FilterRegistration> getFilterRegistrations() { Map<String, ApplicationFilterRegistration> result = new HashMap<String, ApplicationFilterRegistration>(); FilterDef[] filterDefs = context.findFilterDefs(); for (FilterDef filterDef : filterDefs) { result.put(filterDef.getFilterName(), new ApplicationFilterRegistration(filterDef, context)); } return result; }
public static void disableDefaultFilter(ServletContext ctx) { FilterRegistration reg = ctx.getFilterRegistration(FILTER_NAME); if (reg == null) { logger.warn("{} was not found in the web app", FILTER_NAME); } else { if (!reg.setInitParameter(DISABLED, "true")) { logger.warn("Disabling of {} failed", FILTER_NAME); } else { logger.warn("Disabled filter {}", FILTER_NAME); } } }
@Override public void contextInitialized(ServletContextEvent sce) { FilterRegistration.Dynamic filterRegistration = sce.getServletContext() .addFilter("BraveServletFilter", new TracingFilter(tracer)); // Explicit mapping to avoid trace on readiness probe filterRegistration.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "/api-gateway"); }
@Override public void contextInitialized(ServletContextEvent sce) { FilterRegistration.Dynamic filterRegistration = sce.getServletContext() .addFilter("BraveServletFilter", new TracingFilter(tracer)); // Explicit mapping to avoid trace on readiness probe filterRegistration.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "/order"); }
@Override public void onStartup(ServletContext sc) throws ServletException { logger.info("wicket servlet initializer startup, configuration: {}", wicketConfiguration); FilterRegistration filter = sc.addFilter("wicket-filter", JavaxWebSocketFilter.class); filter.setInitParameter(JavaxWebSocketFilter.APP_FACT_PARAM, SpringWebApplicationFactory.class.getName()); filter.setInitParameter("applicationBean", "wicketApplication"); filter.setInitParameter(JavaxWebSocketFilter.FILTER_MAPPING_PARAM, "/*"); filter.setInitParameter("configuration", wicketConfiguration); filter.addMappingForUrlPatterns(null, false, "/*"); }
@Override public FilterRegistration.Dynamic addFilter(final String filterName, final Filter filter) { ensureNotProgramaticListener(); ensureNotInitialized(); if (deploymentInfo.getFilters().containsKey(filterName)) { return null; } FilterInfo f = new FilterInfo(filterName, filter.getClass(), new ImmediateInstanceFactory<>(filter)); deploymentInfo.addFilter(f); deployment.getFilters().addFilter(f); return new FilterRegistrationImpl(f, deployment, this); }
@Override public FilterRegistration.Dynamic addFilter(final String filterName, final Class<? extends Filter> filterClass) { ensureNotProgramaticListener(); ensureNotInitialized(); if (deploymentInfo.getFilters().containsKey(filterName)) { return null; } FilterInfo filter = new FilterInfo(filterName, filterClass); deploymentInfo.addFilter(filter); deployment.getFilters().addFilter(filter); return new FilterRegistrationImpl(filter, deployment, this); }
@Override public FilterRegistration getFilterRegistration(final String filterName) { ensureNotProgramaticListener(); final FilterInfo filterInfo = deploymentInfo.getFilters().get(filterName); if (filterInfo == null) { return null; } return new FilterRegistrationImpl(filterInfo, deployment, this); }
@Override public Map<String, ? extends FilterRegistration> getFilterRegistrations() { ensureNotProgramaticListener(); final Map<String, FilterRegistration> ret = new HashMap<>(); for (Map.Entry<String, FilterInfo> entry : deploymentInfo.getFilters().entrySet()) { ret.put(entry.getKey(), new FilterRegistrationImpl(entry.getValue(), deployment, this)); } return ret; }
@Override public void onStartup(ServletContext servletContext) throws ServletException { //If you want to use the XML configuration, comment the following two lines out. AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.register(ApplicationContext.class); // rootContext.scan("com.pigdroid.social.config"); //If you want to use the XML configuration, uncomment the following lines. //XmlWebApplicationContext rootContext = new XmlWebApplicationContext(); //rootContext.setConfigLocation("classpath:exampleApplicationContext.xml"); ServletRegistration.Dynamic dispatcher = servletContext.addServlet(DISPATCHER_SERVLET_NAME, new DispatcherServlet(rootContext)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping(DISPATCHER_SERVLET_MAPPING); EnumSet<DispatcherType> dispatcherTypes = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD); CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); FilterRegistration.Dynamic characterEncoding = servletContext.addFilter("characterEncoding", characterEncodingFilter); characterEncoding.addMappingForUrlPatterns(dispatcherTypes, true, "/*"); FilterRegistration.Dynamic security = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy()); security.addMappingForUrlPatterns(dispatcherTypes, true, "/*"); FilterRegistration.Dynamic sitemesh = servletContext.addFilter("sitemesh", new ConfigurableSiteMeshFilter()); sitemesh.addMappingForUrlPatterns(dispatcherTypes, true, "*.jsp"); servletContext.addListener(new ContextLoaderListener(rootContext)); }
@Override public void run(AppConfig configuration, Environment environment) throws IOException { // Enable CORS headers final FilterRegistration.Dynamic cors = environment.servlets().addFilter("CORS", CrossOriginFilter.class); // Configure CORS parameters cors.setInitParameter("allowedOrigins", "*"); cors.setInitParameter("allowedHeaders", "X-Requested-With,Content-Type,Accept,Origin"); cors.setInitParameter("allowedMethods", "OPTIONS,GET,PUT,POST,DELETE,HEAD"); // Add URL mapping cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); Quadtree quadtree = new Quadtree(); URL world = this.getClass().getResource("tz_world.shp"); new TZShapeReader(quadtree).read(world); TimeZoneService timeZoneService = new TimeZoneService(quadtree); environment.jersey().register(timeZoneService); // // healthChecks // environment.healthChecks().register("app-health-check", new AppHealthCheck()); // // // filter // environment.servlets().addFilter("ip-filter", new IPFilter(configuration.getIPWhiteList(), configuration.getIPBlackList())).addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); }
private static void configureCors(Environment env) { final FilterRegistration.Dynamic cors = env.servlets().addFilter("CORS", CrossOriginFilter.class); cors.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*"); cors.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "X-Requested-With,Content-Type,Accept,Origin,Authorization"); cors.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "OPTIONS,GET,PUT,POST,DELETE,HEAD"); cors.setInitParameter(CrossOriginFilter.ALLOW_CREDENTIALS_PARAM, "true"); // Add URL mapping cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); }
/** * @since servlet-api-3.0 */ @Override public FilterRegistration.Dynamic addFilter(String filterName, Class<? extends Filter> filterClass) { if (isStarted()) throw new IllegalStateException(); if (filterName == null || "".equals(filterName.trim())) throw new IllegalStateException("Missing filter name"); if (!_enabled) throw new UnsupportedOperationException(); final ServletHandler handler = ServletContextHandler.this.getServletHandler(); FilterHolder holder = handler.getFilter(filterName); if (holder == null) { //new filter holder = handler.newFilterHolder(Source.JAVAX_API); holder.setName(filterName); holder.setHeldClass(filterClass); handler.addFilter(holder); return holder.getRegistration(); } if (holder.getClassName()==null && holder.getHeldClass()==null) { //preliminary filter registration completion holder.setHeldClass(filterClass); return holder.getRegistration(); } else return null; //existing filter }
/** * @since servlet-api-3.0 */ @Override public FilterRegistration.Dynamic addFilter(String filterName, String className) { if (isStarted()) throw new IllegalStateException(); if (filterName == null || "".equals(filterName.trim())) throw new IllegalStateException("Missing filter name"); if (!_enabled) throw new UnsupportedOperationException(); final ServletHandler handler = ServletContextHandler.this.getServletHandler(); FilterHolder holder = handler.getFilter(filterName); if (holder == null) { //new filter holder = handler.newFilterHolder(Source.JAVAX_API); holder.setName(filterName); holder.setClassName(className); handler.addFilter(holder); return holder.getRegistration(); } if (holder.getClassName()==null && holder.getHeldClass()==null) { //preliminary filter registration completion holder.setClassName(className); return holder.getRegistration(); } else return null; //existing filter }
/** * @since servlet-api-3.0 */ @Override public FilterRegistration.Dynamic addFilter(String filterName, Filter filter) { if (isStarted()) throw new IllegalStateException(); if (filterName == null || "".equals(filterName.trim())) throw new IllegalStateException("Missing filter name"); if (!_enabled) throw new UnsupportedOperationException(); final ServletHandler handler = ServletContextHandler.this.getServletHandler(); FilterHolder holder = handler.getFilter(filterName); if (holder == null) { //new filter holder = handler.newFilterHolder(Source.JAVAX_API); holder.setName(filterName); holder.setFilter(filter); handler.addFilter(holder); return holder.getRegistration(); } if (holder.getClassName()==null && holder.getHeldClass()==null) { //preliminary filter registration completion holder.setFilter(filter); return holder.getRegistration(); } else return null; //existing filter }
@Override public FilterRegistration getFilterRegistration(String filterName) { if (!_enabled) throw new UnsupportedOperationException(); final FilterHolder holder=ServletContextHandler.this.getServletHandler().getFilter(filterName); return (holder==null)?null:holder.getRegistration(); }