类javax.servlet.DispatcherType源码实例Demo

下面列出了怎么用javax.servlet.DispatcherType的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: lams   文件: ServletSecurityRoleHandler.java
@Override
public void handleRequest(final HttpServerExchange exchange) throws Exception {
    final ServletRequestContext servletRequestContext = exchange.getAttachment(ServletRequestContext.ATTACHMENT_KEY);
    ServletRequest request = servletRequestContext.getServletRequest();
    if (request.getDispatcherType() == DispatcherType.REQUEST) {
        List<SingleConstraintMatch> constraints = servletRequestContext.getRequiredConstrains();
        SecurityContext sc = exchange.getSecurityContext();
        if (!authorizationManager.canAccessResource(constraints, sc.getAuthenticatedAccount(), servletRequestContext.getCurrentServlet().getManagedServlet().getServletInfo(), servletRequestContext.getOriginalRequest(), servletRequestContext.getDeployment())) {

            HttpServletResponse response = (HttpServletResponse) servletRequestContext.getServletResponse();
            response.sendError(StatusCodes.FORBIDDEN);
            return;
        }
    }
    next.handleRequest(exchange);
}
 
源代码2 项目: openwebbeans-meecrowave   文件: OWBAutoSetup.java
@Override
public void onStartup(final Set<Class<?>> c, final ServletContext ctx) {
    final Configuration builder = Configuration.class.cast(ctx.getAttribute("meecrowave.configuration"));
    final Meecrowave instance = Meecrowave.class.cast(ctx.getAttribute("meecrowave.instance"));
    if (builder.isCdiConversation()) {
        try {
            final Class<? extends Filter> clazz = (Class<? extends Filter>) OWBAutoSetup.class.getClassLoader()
                  .loadClass("org.apache.webbeans.web.context.WebConversationFilter");
            final FilterRegistration.Dynamic filter = ctx.addFilter("owb-conversation", clazz);
            filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "/*");
        } catch (final Exception e) {
            // no-op
        }
    }

    // eager boot to let injections work in listeners
    final EagerBootListener bootListener = new EagerBootListener(instance);
    bootListener.doContextInitialized(new ServletContextEvent(ctx));
    ctx.addListener(bootListener);
}
 
源代码3 项目: gocd   文件: Jetty9ServerTest.java
@Test
public void shouldAddDefaultHeadersForRootContext() throws Exception {
    jetty9Server.configure();
    jetty9Server.startHandlers();

    HttpServletResponse response = mock(HttpServletResponse.class);
    when(response.getWriter()).thenReturn(mock(PrintWriter.class));

    HttpServletRequest request = mock(HttpServletRequest.class);

    Request baseRequest = mock(Request.class);
    when(baseRequest.getDispatcherType()).thenReturn(DispatcherType.REQUEST);
    when(baseRequest.getHttpFields()).thenReturn(mock(HttpFields.class));

    ContextHandler rootPathHandler = getLoadedHandlers().get(GoServerLoadingIndicationHandler.class);
    rootPathHandler.setServer(server);
    rootPathHandler.start();
    rootPathHandler.handle("/something", baseRequest, request, response);

    verify(response).setHeader("X-XSS-Protection", "1; mode=block");
    verify(response).setHeader("X-Content-Type-Options", "nosniff");
    verify(response).setHeader("X-Frame-Options", "SAMEORIGIN");
    verify(response).setHeader("X-UA-Compatible", "chrome=1");
}
 
源代码4 项目: tomcatsrc   文件: FilterMap.java
/**
 *
 * This method will be used to set the current state of the FilterMap
 * representing the state of when filters should be applied.
 */
public void setDispatcher(String dispatcherString) {
    String dispatcher = dispatcherString.toUpperCase(Locale.ENGLISH);
    
    if (dispatcher.equals(DispatcherType.FORWARD.name())) {
        // apply FORWARD to the global dispatcherMapping.
        dispatcherMapping |= FORWARD;
    } else if (dispatcher.equals(DispatcherType.INCLUDE.name())) {
        // apply INCLUDE to the global dispatcherMapping.
        dispatcherMapping |= INCLUDE;
    } else if (dispatcher.equals(DispatcherType.REQUEST.name())) {
        // apply REQUEST to the global dispatcherMapping.
        dispatcherMapping |= REQUEST;
    }  else if (dispatcher.equals(DispatcherType.ERROR.name())) {
        // apply ERROR to the global dispatcherMapping.
        dispatcherMapping |= ERROR;
    }  else if (dispatcher.equals(DispatcherType.ASYNC.name())) {
        // apply ERROR to the global dispatcherMapping.
        dispatcherMapping |= ASYNC;
    }
}
 
源代码5 项目: Tomcat8-Source-Read   文件: TestELInJsp.java
@Test
public void testBug57142() throws Exception {
    getTomcatInstanceTestWebapp(false, true);

    ByteChunk res = getUrl("http://localhost:" + getPort() +
            "/test/bug5nnnn/bug57142.jsp");

    String result = res.toString();
    // javax.servlet
    assertEcho(result, "00-" + DispatcherType.ASYNC);
    // No obvious static fields for javax.servlet.http
    // Could hack something with HttpUtils...
    // No obvious static fields for javax.servlet.jsp
    // Wild card (package) import
    assertEcho(result, "01-" + RoundingMode.HALF_UP);
    // Class import
    assertEcho(result, "02-" + Collections.EMPTY_LIST.size());
}
 
@Test
public void testELTagFileImports() throws Exception {
    getTomcatInstanceTestWebapp(false, true);

    ByteChunk out = new ByteChunk();

    int rc = getUrl("http://localhost:" + getPort() + "/test/bug5nnnn/bug58178b.jsp", out, null);

    Assert.assertEquals(HttpServletResponse.SC_OK, rc);

    String result = out.toString();

    Assert.assertTrue(result, result.contains("00-" + DispatcherType.ASYNC));
    // No obvious status fields for javax.servlet.http
    // Could hack something with HttpUtils...
    // No obvious status fields for javax.servlet.jsp
    // Wild card (package) import
    Assert.assertTrue(result, result.contains("01-" + RoundingMode.HALF_UP));
    // Class import
    Assert.assertTrue(result, result.contains("02-" + Collections.EMPTY_LIST.size()));
}
 
源代码7 项目: supplierShop   文件: FilterConfig.java
@SuppressWarnings({ "rawtypes", "unchecked" })
@Bean
public FilterRegistrationBean xssFilterRegistration()
{
    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setDispatcherTypes(DispatcherType.REQUEST);
    registration.setFilter(new XssFilter());
    registration.addUrlPatterns(StringUtils.split(urlPatterns, ","));
    registration.setName("xssFilter");
    registration.setOrder(Integer.MAX_VALUE);
    Map<String, String> initParameters = new HashMap<String, String>();
    initParameters.put("excludes", excludes);
    initParameters.put("enabled", enabled);
    registration.setInitParameters(initParameters);
    return registration;
}
 
@Override
public void before(Object target, Object[] args) {
    if (isDebug) {
        logger.beforeInterceptor(target, args);
    }

    try {
        final HttpServletRequest request = toHttpServletRequest(args);
        if (request.getDispatcherType() == DispatcherType.ASYNC || request.getDispatcherType() == DispatcherType.ERROR) {
            if (isDebug) {
                logger.debug("Skip async servlet request event. isAsyncStarted={}, dispatcherType={}", request.isAsyncStarted(), request.getDispatcherType());
            }
            return;
        }
        this.servletRequestListenerInterceptorHelper.initialized(request, JettyConstants.JETTY_METHOD, this.methodDescriptor);
    } catch (Throwable t) {
        logger.info("Failed to servlet request event handle.", t);
    }
}
 
源代码9 项目: Tomcat7.0.67   文件: FilterMap.java
public String[] getDispatcherNames() {
    ArrayList<String> result = new ArrayList<String>();
    if ((dispatcherMapping & FORWARD) > 0) {
        result.add(DispatcherType.FORWARD.name());
    }
    if ((dispatcherMapping & INCLUDE) > 0) {
        result.add(DispatcherType.INCLUDE.name());
    }
    if ((dispatcherMapping & REQUEST) > 0) {
        result.add(DispatcherType.REQUEST.name());
    }
    if ((dispatcherMapping & ERROR) > 0) {
        result.add(DispatcherType.ERROR.name());
    }
    if ((dispatcherMapping & ASYNC) > 0) {
        result.add(DispatcherType.ASYNC.name());
    }
    return result.toArray(new String[result.size()]);
}
 
@Override public void init(ServletContextHandler handler) {
  AnnotationConfigWebApplicationContext appContext =
    new AnnotationConfigWebApplicationContext() {
      // overriding this allows us to register dependencies of TracingHandlerInterceptor
      // without passing static state to a configuration class.
      @Override protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) {
        beanFactory.registerSingleton("httpTracing", httpTracing);
        super.loadBeanDefinitions(beanFactory);
      }
    };

  appContext.register(Servlet3TestController.class); // the test resource
  appContext.register(TracingConfig.class); // generic tracing setup
  DispatcherServlet servlet = new DispatcherServlet(appContext);
  servlet.setDispatchOptionsRequest(true);
  ServletHolder servletHolder = new ServletHolder(servlet);
  servletHolder.setAsyncSupported(true);
  handler.addServlet(servletHolder, "/*");
  handler.addEventListener(new ContextLoaderListener(appContext));

  // add the trace filter, which lazy initializes a real tracing filter from the spring context
  Dynamic filterRegistration =
    handler.getServletContext().addFilter("tracingFilter", DelegatingTracingFilter.class);
  filterRegistration.setAsyncSupported(true);
  filterRegistration.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
}
 
源代码11 项目: piranha   文件: DefaultWebApplicationRequest.java
/**
 * Constructor.
 */
public DefaultWebApplicationRequest() {
    this.authType = null;
    this.asyncStarted = false;
    this.asyncSupported = false;
    this.attributeManager = new DefaultAttributeManager();
    this.characterEncoding = "ISO-8859-1";
    this.contentLength = -1;
    this.contentType = null;
    this.contextPath = "";
    this.cookies = null;
    this.dispatcherType = DispatcherType.REQUEST;
    this.headerManager = new DefaultHttpHeaderManager();
    this.headerManager.setHeader("Accept", "*/*");
    this.inputStream = new ByteArrayInputStream(new byte[0]);
    this.method = "GET";
    this.protocol = "HTTP/1.1";
    this.scheme = "http";
    this.serverName = "localhost";
    this.serverPort = 80;
    this.servletPath = "";
    this.parameters = new HashMap<>();
    this.upgraded = false;
}
 
@Test // SPR-16983
public void forwardedRequestWithServletForward() throws Exception {
	this.request.setRequestURI("/foo");
	this.request.addHeader(X_FORWARDED_PROTO, "https");
	this.request.addHeader(X_FORWARDED_HOST, "www.mycompany.com");
	this.request.addHeader(X_FORWARDED_PORT, "443");

	this.filter.doFilter(this.request, new MockHttpServletResponse(), this.filterChain);
	HttpServletRequest wrappedRequest = (HttpServletRequest) this.filterChain.getRequest();

	this.request.setDispatcherType(DispatcherType.FORWARD);
	this.request.setRequestURI("/bar");
	this.filterChain.reset();

	this.filter.doFilter(wrappedRequest, new MockHttpServletResponse(), this.filterChain);
	HttpServletRequest actual = (HttpServletRequest) this.filterChain.getRequest();

	assertNotNull(actual);
	assertEquals("/bar", actual.getRequestURI());
	assertEquals("https://www.mycompany.com/bar", actual.getRequestURL().toString());
}
 
源代码13 项目: lams   文件: FilterHandler.java
public FilterHandler(final Map<DispatcherType, List<ManagedFilter>> filters, final boolean allowNonStandardWrappers, final HttpHandler next) {
    this.allowNonStandardWrappers = allowNonStandardWrappers;
    this.next = next;
    this.filters = new EnumMap<>(filters);
    Map<DispatcherType, Boolean> asyncSupported = new EnumMap<>(DispatcherType.class);
    for(Map.Entry<DispatcherType, List<ManagedFilter>> entry : filters.entrySet()) {
        boolean supported = true;
        for(ManagedFilter i : entry.getValue()) {
            if(!i.getFilterInfo().isAsyncSupported()) {
                supported = false;
                break;
            }
        }
        asyncSupported.put(entry.getKey(), supported);
    }
    this.asyncSupported = asyncSupported;
}
 
源代码14 项目: pinpoint   文件: AbstractServerHandleInterceptor.java
@Override
public void after(Object target, Object[] args, Object result, Throwable throwable) {
    if (isDebug) {
        logger.afterInterceptor(target, args, result, throwable);
    }

    try {
        final HttpServletRequest request = toHttpServletRequest(args);
        final HttpServletResponse response = toHttpServletResponse(args);
        if (request.getDispatcherType() == DispatcherType.ASYNC || request.getDispatcherType() == DispatcherType.ERROR) {
            if (isDebug) {
                logger.debug("Skip async servlet request event. isAsyncStarted={}, dispatcherType={}", request.isAsyncStarted(), request.getDispatcherType());
            }
            return;
        }
        final int statusCode = getStatusCode(response);
        this.servletRequestListenerInterceptorHelper.destroyed(request, throwable, statusCode);
    } catch (Throwable t) {
        if (isInfo) {
            logger.info("Failed to servlet request event handle.", t);
        }
    }
}
 
@Override
public void before(Object target, Object[] args) {
    if (isDebug) {
        logger.beforeInterceptor(target, args);
    }

    if (!argumentValidator.validate(args)) {
        return;
    }

    try {
        final HttpServletRequest request = (HttpServletRequest) args[0];
        if (request.getDispatcherType() == DispatcherType.ASYNC) {
            if (isDebug) {
                logger.debug("Skip async servlet Request. isAsyncStarted={}, dispatcherType={}", request.isAsyncStarted(), request.getDispatcherType());
            }
            return;
        }

        this.servletRequestListenerInterceptorHelper.initialized(request, ResinConstants.RESIN_METHOD, this.methodDescriptor);
    } catch (Throwable t) {
        if (isInfo) {
            logger.info("Failed to servlet request event handle.", t);
        }
    }
}
 
源代码16 项目: tomcatsrc   文件: FilterMap.java
public String[] getDispatcherNames() {
    ArrayList<String> result = new ArrayList<String>();
    if ((dispatcherMapping & FORWARD) > 0) {
        result.add(DispatcherType.FORWARD.name());
    }
    if ((dispatcherMapping & INCLUDE) > 0) {
        result.add(DispatcherType.INCLUDE.name());
    }
    if ((dispatcherMapping & REQUEST) > 0) {
        result.add(DispatcherType.REQUEST.name());
    }
    if ((dispatcherMapping & ERROR) > 0) {
        result.add(DispatcherType.ERROR.name());
    }
    if ((dispatcherMapping & ASYNC) > 0) {
        result.add(DispatcherType.ASYNC.name());
    }
    return result.toArray(new String[result.size()]);
}
 
源代码17 项目: registry   文件: RegistryApplication.java
private void addServletFilters(RegistryConfiguration registryConfiguration, Environment environment) {
    List<ServletFilterConfiguration> servletFilterConfigurations = registryConfiguration.getServletFilters();
    if (servletFilterConfigurations != null && !servletFilterConfigurations.isEmpty()) {
        for (ServletFilterConfiguration servletFilterConfig : servletFilterConfigurations) {
            try {
                String className = servletFilterConfig.getClassName();
                Map<String, String> params = servletFilterConfig.getParams();
                String typeSuffix = params.get("type") != null ? ("-" + params.get("type").toString()) : "";
                LOG.info("Registering servlet filter [{}]", servletFilterConfig);
                Class<? extends Filter> filterClass = (Class<? extends Filter>) Class.forName(className);
                FilterRegistration.Dynamic dynamic = environment.servlets().addFilter(className + typeSuffix, filterClass);
                if (params != null) {
                    dynamic.setInitParameters(params);
                }
                dynamic.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
            } catch (Exception e) {
                LOG.error("Error registering servlet filter {}", servletFilterConfig);
                throw new RuntimeException(e);
            }
        }
    }
}
 
源代码18 项目: quarkus-http   文件: FilterHandler.java
@Override
public void handleRequest(final HttpServerExchange exchange) throws Exception {
    final ServletRequestContext servletRequestContext = exchange.getAttachment(ServletRequestContext.ATTACHMENT_KEY);
    ServletRequest request = servletRequestContext.getServletRequest();
    ServletResponse response = servletRequestContext.getServletResponse();
    DispatcherType dispatcher = servletRequestContext.getDispatcherType();
    Boolean supported = asyncSupported.get(dispatcher);
    if(supported != null && ! supported) {
        servletRequestContext.setAsyncSupported(false);
    }

    final List<ManagedFilter> filters = this.filters.get(dispatcher);
    if(filters == null) {
        next.handleRequest(exchange);
    } else {
        final FilterChainImpl filterChain = new FilterChainImpl(exchange, filters, next, allowNonStandardWrappers);
        filterChain.doFilter(request, response);
    }
}
 
源代码19 项目: AIDR   文件: ApplicationInitializer.java
@Override
public void onStartup(ServletContext servletContext) throws ServletException {

	/* Setting the configuration classes */
	AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
	context.setConfigLocation("qa.qcri.aidr.data.config");

	/*Configuring error handler filter for errors out isde the controllers
	FilterRegistration.Dynamic errorHandlerFilter = servletContext.addFilter("errorHandlerFilter", new ErrorHandlerFilter());
	errorHandlerFilter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
	*/
	FilterRegistration.Dynamic encodingFilter = servletContext.addFilter("encodingFilter", new org.springframework.web.filter.CharacterEncodingFilter());
	encodingFilter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
	encodingFilter.setInitParameter("encoding", "UTF-8");
	encodingFilter.setInitParameter("forceEncoding", "true");
	
	/* Adding context listener */
	servletContext.addListener(new ContextLoaderListener(context));
	
	/* Adding request listener */
	servletContext.addListener(new RequestContextListener());

	/* Configuring dispatcher servlet for spring mvc */
	/*CustomDispatcherServlet servlet = new CustomDispatcherServlet(context); */
	ServletRegistration.Dynamic appServlet = servletContext.addServlet("dispatcher", new DispatcherServlet(context));
	appServlet.setLoadOnStartup(1);
	appServlet.addMapping("/*");
}
 
源代码20 项目: ja-micro   文件: JettyComposer.java
public static void compose(Server server) {
    //Servlets + Guice
    ServletContextHandler servletContextHandler = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS);
    servletContextHandler.addFilter(GuiceFilter.class, "/*", EnumSet.allOf(DispatcherType.class));
    servletContextHandler.addServlet(DefaultServlet.class, "/");

    //JMX stuff...
    MBeanContainer mbContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
    server.addEventListener(mbContainer);
    server.addBean(mbContainer);
    server.addBean(Log.getLog());
}
 
源代码21 项目: Tomcat8-Source-Read   文件: Request.java
@Override
public DispatcherType getDispatcherType() {
    if (internalDispatcherType == null) {
        return DispatcherType.REQUEST;
    }

    return this.internalDispatcherType;
}
 
源代码22 项目: cloudbreak   文件: CommonFilterConfiguration.java
@Bean
public FilterRegistrationBean spanFinishingFilter() {
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
    filterRegistrationBean.setFilter(new SpanFinishingFilter());
    filterRegistrationBean.setAsyncSupported(true);
    filterRegistrationBean.setOrder(Integer.MIN_VALUE);
    filterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST);
    filterRegistrationBean.addUrlPatterns("*");
    return filterRegistrationBean;
}
 
源代码23 项目: flowable-engine   文件: WebConfigurer.java
/**
 * Initializes Spring Security.
 */
private void initSpringSecurity(ServletContext servletContext, EnumSet<DispatcherType> disps) {
    LOGGER.debug("Registering Spring Security Filter");
    FilterRegistration.Dynamic springSecurityFilter = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());

    springSecurityFilter.addMappingForUrlPatterns(disps, false, "/*");
}
 
源代码24 项目: spectator   文件: IpcServletFilterTest.java
@BeforeAll
public static void init() throws Exception {
  server = new Server(new InetSocketAddress("localhost", 0));
  ServletHandler handler = new ServletHandler();
  handler.addServletWithMapping(OkServlet.class, "/test/foo/*");
  handler.addServletWithMapping(OkServlet.class, "/api/*");
  handler.addServletWithMapping(BadRequestServlet.class, "/bad/*");
  handler.addServletWithMapping(FailServlet.class, "/throw/*");
  handler.addServletWithMapping(CustomEndpointServlet.class, "/endpoint/*");
  handler.addServletWithMapping(OkServlet.class, "/*");
  handler.addFilterWithMapping(IpcServletFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
  server.setHandler(handler);
  server.start();
  baseUri = server.getURI();
}
 
源代码25 项目: lams   文件: DefaultServlet.java
private boolean isAllowed(String path, DispatcherType dispatcherType) {
    if (!path.isEmpty()) {
        if(dispatcherType == DispatcherType.REQUEST) {
            //WFLY-3543 allow the dispatcher to access stuff in web-inf and meta inf
            if (path.startsWith("/META-INF") ||
                    path.startsWith("META-INF") ||
                    path.startsWith("/WEB-INF") ||
                    path.startsWith("WEB-INF")) {
                return false;
            }
        }
    }
    if(defaultAllowed && disallowed.isEmpty()) {
        return true;
    }
    int pos = path.lastIndexOf('/');
    final String lastSegment;
    if (pos == -1) {
        lastSegment = path;
    } else {
        lastSegment = path.substring(pos + 1);
    }
    if (lastSegment.isEmpty()) {
        return true;
    }
    int ext = lastSegment.lastIndexOf('.');
    if (ext == -1) {
        //no extension
        return true;
    }
    final String extension = lastSegment.substring(ext + 1, lastSegment.length());
    if (defaultAllowed) {
        return !disallowed.contains(extension);
    } else {
        return allowed.contains(extension);
    }
}
 
@Override
public void addMappingForUrlPatterns(
        EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter,
        String... urlPatterns) {

    FilterMap filterMap = new FilterMap();

    filterMap.setFilterName(filterDef.getFilterName());

    if (dispatcherTypes != null) {
        for (DispatcherType dispatcherType : dispatcherTypes) {
            filterMap.setDispatcher(dispatcherType.name());
        }
    }

    if (urlPatterns != null) {
        // % decoded (if necessary) using UTF-8
        for (String urlPattern : urlPatterns) {
            filterMap.addURLPattern(urlPattern);
        }

        if (isMatchAfter) {
            context.addFilterMap(filterMap);
        } else {
            context.addFilterMapBefore(filterMap);
        }
    }
    // else error?

}
 
源代码27 项目: quarkus-http   文件: ServletInitialHandler.java
@Override
public void handleRequest(final HttpServerExchange exchange) throws Exception {
    final String path = exchange.getRelativePath();
    if (isForbiddenPath(path)) {
        exchange.setStatusCode(StatusCodes.NOT_FOUND);
        return;
    }
    final ServletPathMatch info = paths.getServletHandlerByPath(path);
    if (info.getType() == ServletPathMatch.Type.REWRITE) {
        // this can only happen if the path ends with a /
        // otherwise there would be a redirect instead
        exchange.setRelativePath(info.getRewriteLocation());
        exchange.setRequestPath(exchange.getResolvedPath() + info.getRewriteLocation());
    }
    final HttpServletResponseImpl response = new HttpServletResponseImpl(exchange, servletContext);
    final HttpServletRequestImpl request = new HttpServletRequestImpl(exchange, servletContext);
    final ServletRequestContext servletRequestContext = new ServletRequestContext(servletContext.getDeployment(), request, response, info);
    //set the max request size if applicable
    if (info.getServletChain().getManagedServlet().getMaxRequestSize() > 0) {
        exchange.setMaxEntitySize(info.getServletChain().getManagedServlet().getMaxRequestSize());
    }
    exchange.putAttachment(ServletRequestContext.ATTACHMENT_KEY, servletRequestContext);

    exchange.startBlocking(new ServletBlockingHttpExchange(exchange));
    servletRequestContext.setServletPathMatch(info);

    Executor executor = info.getServletChain().getExecutor();
    if (executor == null) {
        executor = servletContext.getDeployment().getExecutor();
    }

    if (exchange.isInIoThread() || executor != null) {
        //either the exchange has not been dispatched yet, or we need to use a special executor
        exchange.dispatch(executor, dispatchHandler);
    } else {
        dispatchRequest(exchange, servletRequestContext, info.getServletChain(), DispatcherType.REQUEST);
    }
}
 
private void configureCors(Environment environment) {
  FilterRegistration.Dynamic filter = environment.servlets().addFilter("CORS", CrossOriginFilter.class);
  filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
  filter.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "GET,PUT,POST,DELETE,OPTIONS");
  filter.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*");
  filter.setInitParameter(CrossOriginFilter.ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, "*");
  filter.setInitParameter("allowedHeaders", "Content-Type,Authorization,X-Requested-With,Content-Length,Accept,Origin");
  filter.setInitParameter("allowCredentials", "true");
}
 
源代码29 项目: activiti6-boot2   文件: WebConfigurer.java
/**
 * Initializes Spring Security.
 */
private void initSpringSecurity(ServletContext servletContext, EnumSet<DispatcherType> disps) {
  log.debug("Registering Spring Security Filter");
  FilterRegistration.Dynamic springSecurityFilter = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());

  springSecurityFilter.addMappingForUrlPatterns(disps, false, "/*");
}
 
public TestApplicationContextGetRequestDispatcherB(String startMapping, String startUri,
       DispatcherType dispatcherType, String targetMapping, String targetUri,
       boolean useEncodedDispatchPaths,
       String expectedRequestURI, String expectedContextPath, String expectedServletPath,
       String expectedPathInfo, String expectedQueryString, MappingMatch expectedMappingMatch,
       String expectedMappingPattern, String expectedMappingMatchValue,
       String expectedMappingServletName,
       String expectedDispatcherRequestURI, String expectedDispatcherContextPath,
       String expectedDispatcherServletPath, String expectedDispatcherPathInfo,
       String expectedDispatcherQueryString, MappingMatch expectedDispatcherMappingMatch,
       String expectedDispatcherMappingPattern, String expectedDispatcherMappingMatchValue,
       String expectedDispatcherMappingServletName,
       String expectedBody) {
   this.startMapping = startMapping;
   this.startUri = startUri;
   this.dispatcherType = dispatcherType;
   this.targetMapping = targetMapping;
   this.targetUri = targetUri;
   this.useEncodedDispatchPaths = useEncodedDispatchPaths;
   this.expectedRequestURI = expectedRequestURI;
   this.expectedContextPath = expectedContextPath;
   this.expectedServletPath = expectedServletPath;
   this.expectedPathInfo = expectedPathInfo;
   this.expectedQueryString = expectedQueryString;
   this.expectedMappingMatch = expectedMappingMatch;
   this.expectedMappingPattern = expectedMappingPattern;
   this.expectedMappingMatchValue = expectedMappingMatchValue;
   this.expectedMappingServletName = expectedMappingServletName;
   this.expectedDispatcherRequestURI = expectedDispatcherRequestURI;
   this.expectedDispatcherContextPath = expectedDispatcherContextPath;
   this.expectedDispatcherServletPath = expectedDispatcherServletPath;
   this.expectedDispatcherPathInfo = expectedDispatcherPathInfo;
   this.expectedDispatcherQueryString = expectedDispatcherQueryString;
   this.expectedDispatcherMappingMatch = expectedDispatcherMappingMatch;
   this.expectedDispatcherMappingPattern = expectedDispatcherMappingPattern;
   this.expectedDispatcherMappingMatchValue = expectedDispatcherMappingMatchValue;
   this.expectedDispatcherMappingServletName = expectedDispatcherMappingServletName;
   this.expectedBody = expectedBody;
}
 
 类所在包
 同包方法