Stagemonitor.init(); if (ServletContainerInitializerUtil.avoidDoubleInit(this, ctx)) return; ctx.addServlet(ConfigurationServlet.class.getSimpleName(), new ConfigurationServlet()) .addMapping(ConfigurationServlet.CONFIGURATION_ENDPOINT); ctx.addServlet(StagemonitorMetricsServlet.class.getSimpleName(), new StagemonitorMetricsServlet()) .addMapping("/stagemonitor/metrics"); ctx.addServlet(ClientSpanServlet.class.getSimpleName(), new ClientSpanServlet()) .addMapping("/stagemonitor/public/eum"); final ClientSpanJavaScriptServlet servlet = new ClientSpanJavaScriptServlet(); Stagemonitor.getPlugin(ServletPlugin.class).setClientSpanJavaScriptServlet(servlet); securityFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/stagemonitor/*"); securityFilter.setAsyncSupported(true); final FilterRegistration.Dynamic monitorFilter = ctx.addFilter(HttpRequestMonitorFilter.class.getSimpleName(), new HttpRequestMonitorFilter()); monitorFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*"); monitorFilter.setAsyncSupported(true);
final MetricRegistry metricsRegistry = environment.metrics(); metricsRegistry.registerAll(new GarbageCollectorMetricSet()); metricsRegistry.registerAll(new MemoryUsageGaugeSet()); metrics.start(); if (!Strings.isNullOrEmpty(config.getStatsdHostPort())) { environment.lifecycle().manage(new ManagedStatsdReporter(config.getStatsdHostPort(), metricsRegistry)); environment.lifecycle().manage(FastForwardReporter.create( metricsRegistry, ffwdConfig.getAddress(), environment.servlets() .addFilter("VersionResponseFilter", new VersionResponseFilter(metrics.getMasterMetrics())) .addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); environment.jersey().register( new ReportingResourceMethodDispatchAdapter(metrics.getMasterMetrics())); final FilterRegistration.Dynamic cors = environment.servlets() .addFilter("CORS", CrossOriginFilter.class); cors.setInitParameter("allowedOrigins", "*"); cors.setInitParameter("allowedHeaders", "X-Requested-With,Content-Type,Accept,Origin"); cors.setInitParameter("allowedMethods", "OPTIONS,GET,PUT,POST,DELETE,HEAD"); cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
@Override public void initialize() { Timer.start("JERSEY_COLD_START_INIT"); // manually add the spark filter to the chain. This should the last one and match all uris FilterRegistration.Dynamic jerseyFilterReg = getServletContext().addFilter("JerseyFilter", jerseyFilter); jerseyFilterReg.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); Timer.stop("JERSEY_COLD_START_INIT"); initialized = true; } }
ctx.addFilter("PluginDelegatingFilter", PluginDelegatingFilter.class) .addMappingForUrlPatterns(dispatchRequests, false, "/*"); FilterRegistration.Dynamic responseHeaderFilter = ctx.addFilter("ResponseHeaderFilter", ResponseHeaderFilter.class); if (responseHeaderFilter != null) { responseHeaderFilter.setInitParameters(getAdminResponseHeaderFilterParams()); responseHeaderFilter.addMappingForUrlPatterns(dispatchRequests, false, "/admin/*"); } else { log.warn("ResponseHeaderFilter defined in web.xml, please remove it!"); log.info("ParamEncodingFilter.encoding: " + paramEncodingFilterEncoding); paramEncodingFilter.setInitParameter(ParamEncodingFilter.POST_PARAM_ENCODING, paramEncodingFilterEncoding); if(isNotBlank(paramEncodingFilterGETEncoding)){ log.info("ParamEncodingFilter.getencoding: " + paramEncodingFilterGETEncoding); paramEncodingFilter.setInitParameter(ParamEncodingFilter.GET_PARAM_ENCODING, paramEncodingFilterGETEncoding); .addMappingForUrlPatterns(dispatchRequests, false, "/*"); } else { log.warn("ParamEncodingFilter defined in web.xml, please remove it!"); .addMappingForUrlPatterns(dispatchRequests, false, "/*"); .addMappingForUrlPatterns(dispatchRequests, false, "/*"); adminFilter.addMappingForUrlPatterns(dispatchRequests, false, "/admin/*", "/oap/admin/*"); } else { log.warn("AdminFilter defined in web.xml, please rename or remove it!");
private void addServletFilter(Environment environment, String name, Class<? extends Filter> filter, Map<String, String> params) { FilterRegistration.Dynamic dynamic = environment.servlets().addFilter(name, filter); dynamic.setInitParameters(params); dynamic.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); LOG.info("Added servlet filter '{}' with configuration {}", filter, params); }
protected void configureSSO(ServletContext servletContext, String filterName, IServerContext context) { FilterRegistration.Dynamic ssoFilter = servletContext.addFilter(filterName, SSOFilter.class); servletContext.setAttribute(filterName, context); ssoFilter.setInitParameter(SSOConfigurableFilter.SINGULAR_CONTEXT_ATTRIBUTE, filterName); ssoFilter.setInitParameter("logoutUrl", context.getUrlPath() + "/logout"); ssoFilter.setInitParameter("urlExcludePattern", getExcludeUrlRegex()); ssoFilter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, context.getContextPath()); }
); for (Element initParam : element.elements("init-param")) { sRegDyn.setInitParameter( initParam.elementTextTrim("param-name"), initParam.elementText("param-value") sRegDyn.setLoadOnStartup(Integer.parseInt(loadOnStartup.getTextTrim())); sRegDyn.setAsyncSupported(asyncSupported.getTextTrim().equals("true")); ); for (Element initParam : element.elements("init-param")) { fRegDyn.setInitParameter( initParam.elementTextTrim("param-name"), initParam.elementText("param-value") fRegDyn.setAsyncSupported(asyncSupported.getTextTrim().equals("true")); EnumSet<DispatcherType> dispatcherTypes; if (dispatcherTypeSet.isEmpty()) { dispatcherTypes = EnumSet.allOf(DispatcherType.class); } else { dispatcherTypes = EnumSet.copyOf(dispatcherTypeSet); if (dispatcherTypes.isEmpty()) { dispatcherTypes = EnumSet.of(DispatcherType.REQUEST);
@Override public void onStartup(ServletContext servletContext) throws ServletException { //Filter is needed to alter the urls used to serve patient specific URLs javax.servlet.FilterRegistration.Dynamic filter = servletContext.addFilter("dasFilter", new DasURLFilter()); if (filter == null) { LOG.warn("ServletContext already contains a complete FilterRegistration for servlet 'dasFilter'"); } else { filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/das/*"); } Dynamic dasServlet = servletContext.addServlet("dasServlet", new MydasServlet()); if (dasServlet == null) { LOG.warn("ServletContext already contains a complete ServletRegistration for servlet 'dasServlet'"); } else { dasServlet.setLoadOnStartup(1); dasServlet.addMapping("/das/*"); } } }
@Override public void contextInitialized(ServletContextEvent sce) { JaspicUtils.registerSAM(sce.getServletContext(), new TestWrappingServerAuthModule()); sce.getServletContext() .addFilter("Programmatic filter", ProgrammaticFilter.class) .addMappingForUrlPatterns(allOf(DispatcherType.class), false, "/*"); }
FilterRegistration.Dynamic filter = environment.servlets().addFilter(FILTER_NAME, corsFilter); filter.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, corsConfiguration.getAllowedOrigins()); filter.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, corsConfiguration.getAllowedHeaders()); filter.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, corsConfiguration.getAllowedMethods()); filter.setInitParameter(CrossOriginFilter.ALLOW_CREDENTIALS_PARAM, corsConfiguration.isAllowCredentials() ? "true" : "false"); filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*");
@Override public void onStartup(final Set<Class<?>> classes, final ServletContext ctx) throws ServletException { final String active = ctx.getInitParameter(ACTIVE); if (active != null && !Boolean.parseBoolean(active)) { return; } String mapping = ctx.getInitParameter(CONTROLLER_MAPPING); if (mapping == null) { mapping = DEFAULT_MAPPING; } else if (!mapping.endsWith("/*")) { // needed for the controller mapping += "/*"; } String byPage = ctx.getInitParameter(BY_PAGE); if (byPage == null) { byPage = "30"; } else { byPage += byPage; } ctx.addServlet("JBatch Servlet", new JBatchController() .readOnly(false) .defaultScan(Boolean.parseBoolean(ctx.getInitParameter(DEFAULT_SCANNING))) .mapping(mapping) .executionByPage(Integer.parseInt(byPage))) .addMapping(mapping); final String activePrivateFilter = ctx.getInitParameter(ACTIVE_PRIVATE_FILTER); if (activePrivateFilter == null || Boolean.parseBoolean(activePrivateFilter)) { ctx.addFilter("JBatch Private Filter", PrivateFilter.class) .addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*"); } }
final ServletRegistration.Dynamic servlet = servletContext.addServlet("hawtio-user", UserServlet.class); servlet.addMapping(mapping + "user/*"); final ServletRegistration.Dynamic servlet = servletContext.addServlet("hawtio-proxy", ProxyServlet.class); servlet.addMapping(mapping + "proxy/*"); final ServletRegistration.Dynamic servlet = servletContext.addServlet("hawtio-file-upload", UploadServlet.class); servlet.addMapping(mapping + "file-upload/*"); final FilterRegistration.Dynamic filter = servletContext.addFilter("hawtio-redirect", RedirectFilter.class); filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, mapping + "*"); final FilterRegistration.Dynamic filter = servletContext.addFilter("hawtio-cacheheaders", CacheHeadersFilter.class); filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, mapping + "*"); final FilterRegistration.Dynamic filter = servletContext.addFilter("hawtio-cors", CORSFilter.class); filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, mapping + "*"); final FilterRegistration.Dynamic filter = servletContext.addFilter("hawtio-xframe", XFrameOptionsFilter.class); filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, mapping + "*"); final FilterRegistration.Dynamic filter = servletContext.addFilter("hawtio-sessionexpiry", SessionExpiryFilter.class); filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, mapping + "*"); final FilterRegistration.Dynamic filter = servletContext.addFilter("hawtio-authentication", AuthenticationFilter.class); filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, mapping + "auth/*", mapping + "upload/*", mapping + "javadoc/*", mapping + "jolokia/*", ofNullable(jolokia.getMapping()).orElse("/jolokia/*"));
new AnnotationConfigWebApplicationContext()) { rootContext.register(ProbeConfig.class); servletContext.setInitParameter("attribute.value.roles", "ROLE_MANAGER,ROLE_MANAGER-GUI"); servletContext.addListener(new ContextLoaderListener(rootContext)); ServletRegistration.Dynamic probe = servletContext.addServlet("probe", ProbeServlet.class); probe.setInitParameters(initParameters); probe.setLoadOnStartup(0); probe.addMapping("*.htm"); probe.addMapping("*.ajax"); probe.addMapping("/logs/*"); servletContext.addFilter("sitemesh", SiteMeshFilter.class); sitemesh.addMappingForUrlPatterns( EnumSet.of(DispatcherType.FORWARD, DispatcherType.REQUEST, DispatcherType.ERROR), false, "/*"); servletContext.addFilter("filterChainProxy", DelegatingFilterProxy.class); security.addMappingForUrlPatterns( EnumSet.of(DispatcherType.FORWARD, DispatcherType.REQUEST, DispatcherType.ERROR), false, "/*"); EnumSet<SessionTrackingMode> trackingMode = EnumSet.of(SessionTrackingMode.COOKIE); servletContext.setSessionTrackingModes(trackingMode);
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.register(appConfig); servletContext.addListener(new ContextLoaderListener(rootContext)); servletContext.addServlet("dispatcher", dispatcherServlet); if (dispatcherServletRegistration == null) { LOG.warn( } else { final long maxSize = (long) maxFileSize * MB; dispatcherServletRegistration.addMapping("/"); dispatcherServletRegistration.setMultipartConfig( new MultipartConfigElement(null, maxSize, maxSize, FILE_SIZE_THRESHOLD)); servletContext.addFilter("browserDetectionFilter", BrowserDetectionFilter.class); browserDetectionFiler.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "*"); Dynamic etagFilter = servletContext.addFilter("etagFilter", ShallowEtagHeaderFilter.class); etagFilter.addMappingForServletNames(EnumSet.of(DispatcherType.REQUEST), true, "dispatcher");
public class WebInit implements WebApplicationInitializer { private static final String DISPATCHER_SERVLET_NAME = "spring-mvc"; private static final String DISPATCHER_SERVLET_MAPPING = "/"; @Override public void onStartup(ServletContext servletContext) throws ServletException { //If you want to use the XML configuration, comment the following two lines out. AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext(); appContext.register(CoreConfig.class); appContext.setDisplayName("removed customer name"); //If you want to use the XML configuration, uncomment the following lines. //XmlWebApplicationContext rootContext = new XmlWebApplicationContext(); //rootContext.setConfigLocation("classpath:mvc-servlet.xml"); AnnotationConfigWebApplicationContext mvcContext = new AnnotationConfigWebApplicationContext(); mvcContext.register(ServletConfig.class); ServletRegistration.Dynamic springmvc = servletContext.addServlet(DISPATCHER_SERVLET_NAME, new DispatcherServlet(mvcContext)); springmvc.setLoadOnStartup(1); springmvc.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, "/*"); servletContext.addListener(new ContextLoaderListener(appContext)); }
@Override public void run(BithubServerConfiguration config, Environment environment) throws Exception { String githubUser = config.getGithubConfiguration().getUser(); String githubToken = config.getGithubConfiguration().getToken(); String githubWebhookUser = config.getGithubConfiguration().getWebhookConfiguration().getUsername(); String githubWebhookPwd = config.getGithubConfiguration().getWebhookConfiguration().getPassword(); List<RepositoryConfiguration> githubRepositories = config.getGithubConfiguration().getRepositories(); BigDecimal payoutRate = config.getBithubConfiguration().getPayoutRate(); String organizationName = config.getOrganizationConfiguration().getName(); String donationUrl = config.getOrganizationConfiguration().getDonationUrl().toExternalForm(); String coinbaseApiKey = config.getCoinbaseConfiguration().getApiKey(); String coinbaseApiSecret = config.getCoinbaseConfiguration().getApiSecret(); GithubClient githubClient = new GithubClient(githubUser, githubToken); CoinbaseClient coinbaseClient = new CoinbaseClient(coinbaseApiKey, coinbaseApiSecret); CacheManager cacheManager = new CacheManager(coinbaseClient, githubClient, githubRepositories, payoutRate); environment.servlets().addFilter("CORS", CrossOriginFilter.class) .addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); environment.lifecycle().manage(cacheManager); environment.jersey().register(new GithubController(githubRepositories, githubClient, coinbaseClient, payoutRate)); environment.jersey().register(new StatusController(cacheManager, githubRepositories)); environment.jersey().register(new DashboardController(organizationName, donationUrl, cacheManager)); environment.jersey().register(new IOExceptionMapper()); environment.jersey().register(new UnauthorizedHookExceptionMapper()); environment.jersey().register(new BasicAuthProvider<>(new GithubWebhookAuthenticator(githubWebhookUser, githubWebhookPwd), GithubWebhookAuthenticator.REALM)); }
@Override public void onStartup(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.register(SpringMvcConfig.class); // 新建WebApplication,注册配置类,并将其和当前servletContext关联。 context.setServletContext(servletContext); // 注册SpringMVC的DispatcherServlet。 ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(context)); servlet.addMapping("/"); servlet.setLoadOnStartup(1); // 注册SpringMVC的字符过滤器 FilterRegistration.Dynamic encodingFilter = servletContext.addFilter("encoding", new CharacterEncodingFilter()); EnumSet<DispatcherType> dispatcherTypes = EnumSet.allOf(DispatcherType.class); dispatcherTypes.add(DispatcherType.REQUEST); dispatcherTypes.add(DispatcherType.FORWARD); encodingFilter.addMappingForUrlPatterns(dispatcherTypes, true, "*"); encodingFilter.setInitParameter("encoding", "UTF-8"); }
@Override public void onStartup(final Set<Class<?>> classes, final ServletContext servletContext) throws ServletException { if (servletContext.getMajorVersion() > 2 && servletContext.getEffectiveMajorVersion() > 2 && !"true".equalsIgnoreCase(servletContext.getInitParameter( Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED ))) { LOGGER.debug("Log4jServletContainerInitializer starting up Log4j in Servlet 3.0+ environment."); final FilterRegistration.Dynamic filter = servletContext.addFilter("log4jServletFilter", Log4jServletFilter.class); if (filter == null) { LOGGER.warn("WARNING: In a Servlet 3.0+ application, you should not define a " + "log4jServletFilter in web.xml. Log4j 2 normally does this for you automatically. Log4j 2 " + "web auto-initialization has been canceled."); return; } final Log4jWebLifeCycle initializer = WebLoggerContextUtils.getWebLifeCycle(servletContext); initializer.start(); initializer.setLoggerContext(); // the application is just now starting to start up servletContext.addListener(new Log4jServletContextListener()); filter.setAsyncSupported(true); // supporting async when the user isn't using async has no downsides filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "/*"); } } }
EnumSet<DispatcherType> dispatcherTypes = this.dispatcherTypes; if (dispatcherTypes == null) { dispatcherTypes = EnumSet.of(DispatcherType.REQUEST); registration.addMappingForUrlPatterns(dispatcherTypes, this.matchAfter, DEFAULT_URL_MAPPINGS); registration.addMappingForServletNames(dispatcherTypes, this.matchAfter, StringUtils.toStringArray(servletNames)); registration.addMappingForUrlPatterns(dispatcherTypes, this.matchAfter, StringUtils.toStringArray(this.urlPatterns));
@Override public void run(GraphHopperServerConfiguration configuration, Environment environment) { environment.jersey().register(new RootResource()); environment.servlets().addFilter("cors", CORSFilter.class).addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "*"); environment.servlets().addFilter("ipfilter", new IPFilter(configuration.getGraphHopperConfiguration().get("jetty.whiteips", ""), configuration.getGraphHopperConfiguration().get("jetty.blackips", ""))).addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "*"); } }