GVKun编程网logo

基于SpringBoot +方法的分层角色安全性:ServletContext是必需的(springboot分层设计)

16

最近很多小伙伴都在问基于SpringBoot+方法的分层角色安全性:ServletContext是必需的和springboot分层设计这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓

最近很多小伙伴都在问基于SpringBoot +方法的分层角色安全性:ServletContext是必需的springboot分层设计这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展idea 启动 springboot 项目 报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader () L...、JSP PageContext.getServletContext()方法——返回ServletContext的实例、JSP Response.getServletContext()方法:返回session所属的ServletContext对象、org.springframework.boot.context.embedded.ServletContextInitializer的实例源码等相关知识,下面开始了哦!

本文目录一览:

基于SpringBoot +方法的分层角色安全性:ServletContext是必需的(springboot分层设计)

基于SpringBoot +方法的分层角色安全性:ServletContext是必需的(springboot分层设计)

我添加了 基于方法的安全性 并添加了 角色层次结构 。在构建过程中,我不断收到以下异常:

org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.web.servlet.HandlerMapping]:工厂方法’defaultServletHandlerMapping’抛出异常;嵌套的异常是java.lang.IllegalArgumentException:
需要ServletContext来配置默认的Servlet处理

我尝试了许多不同的配置替代方法,但均无济于事…这是我的基本Web安全配置类(如您所见,我添加了与角色层次结构相关的bean):

@Configuration@EnableWebSecuritypublic class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {(...)@Overrideprotected void configure(HttpSecurity httpSecurity) throws Exception {    httpSecurity            .csrf()            .disable()            (...)            .expressionHandler(webExpressionHandler())            (...)            .anyRequest().authenticated();    httpSecurity            .addFilterBefore(authenticationTokenFilterBean(), UsernamePasswordAuthenticationFilter.class);}@Beanpublic SecurityExpressionHandler<FilterInvocation> webExpressionHandler() {    DefaultWebSecurityExpressionHandler defaultWebSecurityExpressionHandler = new DefaultWebSecurityExpressionHandler();    defaultWebSecurityExpressionHandler.setRoleHierarchy(roleHierarchy());    return defaultWebSecurityExpressionHandler;}@Beanpublic RoleHierarchy roleHierarchy() {    RoleHierarchyImpl r = new RoleHierarchyImpl();    r.setHierarchy(Role.getHierarchy());    return r;}(...)}

这是我基于此线程创建的单独的配置文件:

@Configuration@EnableGlobalMethodSecurity(prePostEnabled = true)public class GlobalMethodSecurityConfig extends GlobalMethodSecurityConfiguration {    @Autowired    private RoleHierarchy roleHierarchy;    @Override    protected MethodSecurityExpressionHandler createExpressionHandler() {        DefaultMethodSecurityExpressionHandler expressionHandler = (DefaultMethodSecurityExpressionHandler) super.createExpressionHandler();        expressionHandler.setRoleHierarchy(roleHierarchy);        return expressionHandler;    }}

我为此奋斗了许多小时。我尝试过的相关主题在这里:

  • Spring Boot + Spring Security +分层角色
  • 创建名称为’defaultServletHandlerMapping的bean时出错
  • 创建名称为defaultServletHandlerMapping的bean时出错

每一个帮助表示赞赏!

答案1

小编典典

好,找到了。

我研究了类注释,并得出了一个简单的解决方案:我@EnableGlobalMethodSecurity从GlobalMethodSecurityConfig中删除了它,并将其移到了以前的WebSecurityConfiguration中。所以看起来像这样:

@Configuration@EnableWebSecurity@EnableGlobalMethodSecurity(prePostEnabled = true)public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter { (...) }

和这个:

@Configurationpublic class GlobalMethodSecurityConfig extends GlobalMethodSecurityConfiguration { (...) }

最有趣的部分是,从这里接受的答案可以告诉我哪些对我不起作用。

idea 启动 springboot 项目 报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader () L...

idea 启动 springboot 项目 报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader () L...

有一次启动 springboot 项目的时候,报了一个非常奇怪的错误,说是找不到 servletContext,springboot 不是自带 tomcat 的吗?

在网上找了好久,说是用以下方式解决。

解决方式:

将 tomcat 的 lib 包下的 servlet-api.jar 拷贝到 java 的 jre 下的 lib 里即可。(需要在 idea 中重新导入一下 jdk)

mac 电脑下寻找 java 安装目录方式:在终端下执行  

/usr/libexec/java_home -V 

但是查看同事的 java 的 jre 包下并没有这个 jar,但是人家都能启动起来。这个就不知到为什么了?

虽然自己解决了这个问题,却不知所以然。。。。

后来我发现我们的项目里用的是 undertow 服务器,难道是跟这个有关系吗?

 2. 另一种解决方式:

今天将项目的服务器由 tomcat 换成 undertow, 发现项目在本地可以启动成功,但是发不到服务器就启动不成功,就报跟上面同样的错误,原来是我本地的 jre 环境有 sevlet-api,但是我不能也往服务器的 jre 也放同样的吧,毕竟这样不合理。后来就查找原因,原来是 undertow 的 jar 包中已经有了 sevlet-api 3.1 版本的,但是为何启动不成功呢,原来我的另一个 jar 包中也有 sevlet-api,而且还是 2.5 版本的,

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>compile</scope>
</dependency>
项目在启动的时候优先找到了2.5版本的,而2.5版本的ServletContext类里没有getClassLoader这个方法,所以才报的错,解决方式是将2.5版本的排除,服务器就启动成功了。
总结:看来maven项目的依赖还得多研究。

JSP PageContext.getServletContext()方法——返回ServletContext的实例

JSP PageContext.getServletContext()方法——返回ServletContext的实例

该方法返回 ServletContext 的实例。

语法:

getServletContext()

返回值:返回 ServletContext 的实例。

示例

获取 ServletContext 的实例,关键代码如下:
<%
  ServletContext sc = pageContext.getServletContext();
%>

JSP Response.getServletContext()方法:返回session所属的ServletContext对象

JSP Response.getServletContext()方法:返回session所属的ServletContext对象

该方法用于返回 session 所属的 ServletContext 对象。

语法:

getServletContext()

返回值:ServletContext 对象。

示例

获取 ServletContext 对象,关键代码如下:
<%
  ServletContext sc = session.getServletContext();
%>

org.springframework.boot.context.embedded.ServletContextInitializer的实例源码

org.springframework.boot.context.embedded.ServletContextInitializer的实例源码

项目:contestparser    文件:TomcatEmbeddedServletContainerFactory.java   
@Override
public EmbeddedServletContainer getEmbeddedServletContainer(
        ServletContextinitializer... initializers) {
    Tomcat tomcat = new Tomcat();
    File baseDir = (this.baseDirectory != null ? this.baseDirectory
            : createTempDir("tomcat"));
    tomcat.setBaseDir(baseDir.getAbsolutePath());
    Connector connector = new Connector(this.protocol);
    tomcat.getService().addConnector(connector);
    customizeConnector(connector);
    tomcat.setConnector(connector);
    tomcat.getHost().setAutoDeploy(false);
    tomcat.getEngine().setBackgroundProcessorDelay(-1);
    for (Connector additionalConnector : this.additionalTomcatConnectors) {
        tomcat.getService().addConnector(additionalConnector);
    }
    prepareContext(tomcat.getHost(),initializers);
    return getTomcatEmbeddedServletContainer(tomcat);
}
项目:apollo-custom    文件:WebContextConfiguration.java   
@Bean
public ServletContextinitializer servletContextinitializer() {

  return new ServletContextinitializer() {

    @Override
    public void onStartup(ServletContext servletContext) throws servletexception {
      String loggingServerIP = portalConfig.cloggingUrl();
      String loggingServerPort = portalConfig.cloggingPort();
      String credisServiceUrl = portalConfig.credisServiceUrl();

      servletContext.setinitParameter("loggingServerIP",Strings.isNullOrEmpty(loggingServerIP) ? "" : loggingServerIP);
      servletContext.setinitParameter("loggingServerPort",Strings.isNullOrEmpty(loggingServerPort) ? "" : loggingServerPort);
      servletContext.setinitParameter("credisServiceUrl",Strings.isNullOrEmpty(credisServiceUrl) ? "" : credisServiceUrl);
    }
  };
}
项目:nebo    文件:NettyEmbeddedServletContainerFactory.java   
@Override
public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextinitializer... initializers) {
    ClassLoader parentClassLoader = resourceLoader != null ? resourceLoader.getClassLoader() : ClassUtils.getDefaultClassLoader();
    Package nettyPackage = Bootstrap.class.getPackage();
    String title = nettyPackage.getImplementationTitle();
    String version = nettyPackage.getImplementationVersion();
    logger.info("Running with " + title + " " + version);
    NettyEmbeddedContext context = new NettyEmbeddedContext(getcontextpath(),new urlclassloader(new URL[]{},parentClassLoader),SERVER_INFO);
    if (isRegisterDefaultServlet()) {
        logger.warn("This container does not support a default servlet");
    }

    for (ServletContextinitializer initializer : initializers) {
        try {
            initializer.onStartup(context);
        } catch (servletexception e) {
            throw new RuntimeException(e);
        }
    }
    int port = getPort() > 0 ? getPort() : new Random().nextInt(65535 - 1024) + 1024;
    InetSocketAddress address = new InetSocketAddress(port);
    logger.info("Server initialized with port: " + port);
    return new NettyEmbeddedServletContainer(address,context);
}
项目:apollo    文件:WebContextConfiguration.java   
@Bean
public ServletContextinitializer servletContextinitializer() {

  return new ServletContextinitializer() {

    @Override
    public void onStartup(ServletContext servletContext) throws servletexception {
      String loggingServerIP = portalConfig.cloggingUrl();
      String loggingServerPort = portalConfig.cloggingPort();
      String credisServiceUrl = portalConfig.credisServiceUrl();

      servletContext.setinitParameter("loggingServerIP",Strings.isNullOrEmpty(credisServiceUrl) ? "" : credisServiceUrl);
    }
  };
}
项目:contestparser    文件:TomcatEmbeddedServletContainerFactory.java   
/**
 * Configure the Tomcat {@link Context}.
 * @param context the Tomcat context
 * @param initializers initializers to apply
 */
protected void configureContext(Context context,ServletContextinitializer[] initializers) {
    TomcatStarter starter = new TomcatStarter(initializers);
    if (context instanceof TomcatEmbeddedContext) {
        // Should be true
        ((TomcatEmbeddedContext) context).setStarter(starter);
    }
    context.addServletContainerInitializer(starter,NO_CLASSES);
    for (LifecycleListener lifecycleListener : this.contextLifecycleListeners) {
        context.addLifecycleListener(lifecycleListener);
    }
    for (Valve valve : this.contextValves) {
        context.getPipeline().addValve(valve);
    }
    for (ErrorPage errorPage : getErrorPages()) {
        new TomcatErrorPage(errorPage).addToContext(context);
    }
    for (MimeMappings.Mapping mapping : getMimeMappings()) {
        context.addMimeMapping(mapping.getExtension(),mapping.getMimeType());
    }
    configureSession(context);
    for (TomcatContextCustomizer customizer : this.tomcatContextCustomizers) {
        customizer.customize(context);
    }
}
项目:contestparser    文件:TomcatStarter.java   
@Override
public void onStartup(Set<Class<?>> classes,ServletContext servletContext)
        throws servletexception {
    try {
        for (ServletContextinitializer initializer : this.initializers) {
            initializer.onStartup(servletContext);
        }
    }
    catch (Exception ex) {
        this.startUpException = ex;
        // Prevent Tomcat from logging and re-throwing when we kNow we can
        // deal with it in the main thread,but log for information here.
        if (logger.isErrorEnabled()) {
            logger.error("Error starting Tomcat context: " + ex.getClass().getName());
        }
    }
}
项目:contestparser    文件:JettyEmbeddedServletContainerFactory.java   
/**
 * Configure the given Jetty {@link WebAppContext} for use.
 * @param context the context to configure
 * @param initializers the set of initializers to apply
 */
protected final void configureWebAppContext(WebAppContext context,ServletContextinitializer... initializers) {
    Assert.notNull(context,"Context must not be null");
    context.setTempDirectory(getTempDirectory());
    if (this.resourceLoader != null) {
        context.setClassLoader(this.resourceLoader.getClassLoader());
    }
    String contextpath = getcontextpath();
    context.setcontextpath(StringUtils.hasLength(contextpath) ? contextpath : "/");
    context.setdisplayName(getdisplayName());
    configureDocumentRoot(context);
    if (isRegisterDefaultServlet()) {
        addDefaultServlet(context);
    }
    if (shouldRegisterJspServlet()) {
        addJspServlet(context);
    }
    ServletContextinitializer[] initializersToUse = mergeInitializers(initializers);
    Configuration[] configurations = getWebAppContextConfigurations(context,initializersToUse);
    context.setConfigurations(configurations);
    configureSession(context);
    postProcessWebAppContext(context);
}
项目:spring-boot-starter-lightadmin    文件:LightAdminAutoConfig.java   
/**
    * public void onStartup(ServletContext servletContext) throws servletexception {
    * LightAdmin.configure(servletContext)
    * .basePackage("org.lightadmin.boot.administration")
    * .baseUrl("/admin")
    * .security(false)
    * .backToSiteUrl("http://lightadmin.org");
    * super.onStartup(servletContext);
    * }
    */

/* Used for running in "embedded" mode */
   @Bean
   public ServletContextinitializer servletContextinitializer() {
       return new ServletContextinitializer() {
           @Override
           public void onStartup(ServletContext servletContext) throws servletexception {
               LightAdmin.configure(servletContext)
                       //.basePackage("org.lightadmin.boot.administration")
                       .baseUrl("/lightadmin")
                       .security(false)
                       .backToSiteUrl("http://lightadmin.org");

               new LightAdminWebApplicationInitializer().onStartup(servletContext);
           }
       };
   }
项目:spring-boot-starter-netty    文件:NettyEmbeddedServletContainerFactory.java   
@Override
public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextinitializer... initializers) {
    ClassLoader parentClassLoader = resourceLoader != null ? resourceLoader.getClassLoader() : ClassUtils.getDefaultClassLoader();
    Package nettyPackage = Bootstrap.class.getPackage();
    String title = nettyPackage.getImplementationTitle();
    String version = nettyPackage.getImplementationVersion();
    logger.info("Running with " + title + " " + version);
    NettyEmbeddedContext context = new NettyEmbeddedContext(getcontextpath(),SERVER_INFO);
    if (isRegisterDefaultServlet()) {
        logger.warn("This container does not support a default servlet");
    }
    if (isRegisterJspServlet()) {
        logger.warn("This container does not support a JSP servlet");
    }
    for (ServletContextinitializer initializer : initializers) {
        try {
            initializer.onStartup(context);
        } catch (servletexception e) {
            throw new RuntimeException(e);
        }
    }
    int port = getPort() > 0 ? getPort() : new Random().nextInt(65535 - 1024) + 1024;
    InetSocketAddress address = new InetSocketAddress(port);
    logger.info("Server initialized with port: " + port);
    return new NettyEmbeddedServletContainer(address,context);
}
项目:lightadmin-springboot    文件:LightAdminBootApplication.java   
/**
 * public void onStartup(ServletContext servletContext) throws servletexception {
 * LightAdmin.configure(servletContext)
 * .basePackage("org.lightadmin.boot.administration")
 * .baseUrl("/admin")
 * .security(false)
 * .backToSiteUrl("http://lightadmin.org");
 * super.onStartup(servletContext);
 * }
 */

/* Used for running in "embedded" mode */
@Bean
public ServletContextinitializer servletContextinitializer() {
    return new ServletContextinitializer() {
        @Override
        public void onStartup(ServletContext servletContext) throws servletexception {
            LightAdmin.configure(servletContext)
                    .basePackage("org.lightadmin.boot.administration")
                    .baseUrl("/admin")
                    .security(true)
                    .backToSiteUrl("http://lightadmin.org");

            new LightAdminWebApplicationInitializer().onStartup(servletContext);
        }
    };
}
项目:Voting_2b    文件:Main.java   
@Bean
public ServletContextinitializer servletContextinitializer() {
    return servletContext -> {
        servletContext.setinitParameter("com.sun.faces.forceLoadConfiguration",Boolean.TRUE.toString());
        servletContext.setinitParameter("javax.faces.FACELETS_SKIP_COMMENTS",Boolean.TRUE.toString());
        servletContext.setinitParameter("primefaces.CLIENT_SIDE_VALIDATION","true");
        servletContext.setinitParameter("javax.faces.PROJECT_STAGE","Development");
        servletContext.addListener(com.sun.faces.config.ConfigureListener.class);
        servletContext.setinitParameter("BootsFaces_THEME","default");
    };
}
项目:Voting_2b    文件:Application.java   
@Bean
public ServletContextinitializer servletContextinitializer() {
    return servletContext -> {
        servletContext.setinitParameter("com.sun.faces.forceLoadConfiguration",Boolean.TRUE.toString());
    };
}
项目:VoteCounting_2b    文件:Main.java   
@Bean
public ServletContextinitializer servletContextinitializer() {
    return servletContext -> {
        servletContext.setinitParameter("com.sun.faces.forceLoadConfiguration","default");
    };
}
项目:VulnerableJavaWebApplication    文件:AppLauncher.java   
@SuppressWarnings("deprecation")
@Bean
public ServletContextinitializer servletContextinitializer() {
    return new ServletContextinitializer() {
        @Override
        public void onStartup(ServletContext servletContext) throws servletexception {
            servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE));
            SessionCookieConfig sessionCookieConfig = servletContext.getSessionCookieConfig();
            sessionCookieConfig.setHttpOnly(true);
        }
    };

}
项目:contestparser    文件:TomcatEmbeddedServletContainerFactory.java   
protected void prepareContext(Host host,ServletContextinitializer[] initializers) {
    File docBase = getValidDocumentRoot();
    docBase = (docBase != null ? docBase : createTempDir("tomcat-docbase"));
    TomcatEmbeddedContext context = new TomcatEmbeddedContext();
    context.setName(getcontextpath());
    context.setdisplayName(getdisplayName());
    context.setPath(getcontextpath());
    context.setDocBase(docBase.getAbsolutePath());
    context.addLifecycleListener(new FixContextListener());
    context.setParentClassLoader(
            this.resourceLoader != null ? this.resourceLoader.getClassLoader()
                    : ClassUtils.getDefaultClassLoader());
    SkipPatternJarScanner.apply(context,this.tldSkip);
    WebappLoader loader = new WebappLoader(context.getParentClassLoader());
    loader.setLoaderClass(TomcatEmbeddedWebappClassLoader.class.getName());
    loader.setDelegate(true);
    context.setLoader(loader);
    if (isRegisterDefaultServlet()) {
        addDefaultServlet(context);
    }
    if (shouldRegisterJspServlet()) {
        addJspServlet(context);
        addJasperInitializer(context);
        context.addLifecycleListener(new StoreMergedWebXmlListener());
    }
    ServletContextinitializer[] initializersToUse = mergeInitializers(initializers);
    configureContext(context,initializersToUse);
    host.addChild(context);
    postProcessContext(context);
}
项目:contestparser    文件:UndertowEmbeddedServletContainerFactory.java   
@Override
public EmbeddedServletContainer getEmbeddedServletContainer(
        ServletContextinitializer... initializers) {
    DeploymentManager manager = createDeploymentManager(initializers);
    int port = getPort();
    Builder builder = createBuilder(port);
    return new UndertowEmbeddedServletContainer(builder,manager,getcontextpath(),port,this.useForwardHeaders,port >= 0,getCompression());
}
项目:contestparser    文件:UndertowEmbeddedServletContainerFactory.java   
private DeploymentManager createDeploymentManager(
        ServletContextinitializer... initializers) {
    DeploymentInfo deployment = Servlets.deployment();
    registerServletContainerInitializerToDriveServletContextinitializers(deployment,initializers);
    deployment.setClassLoader(getServletClassLoader());
    deployment.setcontextpath(getcontextpath());
    deployment.setdisplayName(getdisplayName());
    deployment.setDeploymentName("spring-boot");
    if (isRegisterDefaultServlet()) {
        deployment.addServlet(Servlets.servlet("default",DefaultServlet.class));
    }
    configureErrorPages(deployment);
    deployment.setServletStackTraces(ServletStackTraces.NONE);
    deployment.setResourceManager(getDocumentRootResourceManager());
    configureMimeMappings(deployment);
    for (UndertowDeploymentInfoCustomizer customizer : this.deploymentInfoCustomizers) {
        customizer.customize(deployment);
    }
    if (isAccessLogEnabled()) {
        configureAccessLog(deployment);
    }
    if (isPersistSession()) {
        File folder = getValidSessionStoreDir();
        deployment.setSessionPersistenceManager(new FileSessionPersistence(folder));
    }
    DeploymentManager manager = Servlets.defaultContainer().addDeployment(deployment);
    manager.deploy();
    SessionManager sessionManager = manager.getDeployment().getSessionManager();
    int sessionTimeout = (getSessionTimeout() > 0 ? getSessionTimeout() : -1);
    sessionManager.setDefaultSessionTimeout(sessionTimeout);
    return manager;
}
项目:contestparser    文件:UndertowEmbeddedServletContainerFactory.java   
private void registerServletContainerInitializerToDriveServletContextinitializers(
        DeploymentInfo deployment,ServletContextinitializer... initializers) {
    ServletContextinitializer[] mergedInitializers = mergeInitializers(initializers);
    Initializer initializer = new Initializer(mergedInitializers);
    deployment.addServletContainerInitalizer(new ServletContainerInitializerInfo(
            Initializer.class,new ImmediateInstanceFactory<ServletContainerInitializer>(initializer),NO_CLASSES));
}
项目:contestparser    文件:UndertowEmbeddedServletContainerFactory.java   
@Override
public void onStartup(Set<Class<?>> classes,ServletContext servletContext)
        throws servletexception {
    for (ServletContextinitializer initializer : this.initializers) {
        initializer.onStartup(servletContext);
    }
}
项目:contestparser    文件:JettyEmbeddedServletContainerFactory.java   
@Override
public EmbeddedServletContainer getEmbeddedServletContainer(
        ServletContextinitializer... initializers) {
    JettyEmbeddedWebAppContext context = new JettyEmbeddedWebAppContext();
    int port = (getPort() >= 0 ? getPort() : 0);
    Server server = new Server(new InetSocketAddress(getAddress(),port));
    configureWebAppContext(context,initializers);
    if (getCompression() != null && getCompression().getEnabled()) {
        HandlerWrapper gzipHandler = createGzipHandler();
        gzipHandler.setHandler(context);
        server.setHandler(gzipHandler);
    }
    else {
        server.setHandler(context);
    }
    this.logger.info("Server initialized with port: " + port);
    if (getSsl() != null && getSsl().isEnabled()) {
        SslContextFactory sslContextFactory = new SslContextFactory();
        configureSsl(sslContextFactory,getSsl());
        AbstractConnector connector = getSslServerConnectorFactory()
                .getConnector(server,sslContextFactory,port);
        server.setConnectors(new Connector[] { connector });
    }
    for (JettyServerCustomizer customizer : getServerCustomizers()) {
        customizer.customize(server);
    }
    if (this.useForwardHeaders) {
        new ForwardHeadersCustomizer().customize(server);
    }
    return getJettyEmbeddedServletContainer(server);
}
项目:contestparser    文件:JettyEmbeddedServletContainerFactory.java   
/**
 * Return the Jetty {@link Configuration}s that should be applied to the server.
 * @param webAppContext the Jetty {@link WebAppContext}
 * @param initializers the {@link ServletContextinitializer}s to apply
 * @return configurations to apply
 */
protected Configuration[] getWebAppContextConfigurations(WebAppContext webAppContext,ServletContextinitializer... initializers) {
    List<Configuration> configurations = new ArrayList<Configuration>();
    configurations.add(
            getServletContextinitializerConfiguration(webAppContext,initializers));
    configurations.addAll(getConfigurations());
    configurations.add(getErrorPageConfiguration());
    configurations.add(getMimeTypeConfiguration());
    return configurations.toArray(new Configuration[configurations.size()]);
}
项目:contestparser    文件:ServletContextinitializerConfiguration.java   
private void callInitializers() throws servletexception {
    try {
        setExtendedListenerTypes(true);
        for (ServletContextinitializer initializer : ServletContextinitializerConfiguration.this.initializers) {
            initializer.onStartup(this.context.getServletContext());
        }
    }
    finally {
        setExtendedListenerTypes(false);
    }
}
项目:contestparser    文件:ServerPropertiesTests.java   
private void triggerInitializers(ConfigurableEmbeddedServletContainer container,ServletContext servletContext) throws servletexception {
    verify(container,atLeastOnce())
            .addInitializers(this.initializersCaptor.capture());
    for (Object initializers : this.initializersCaptor.getAllValues()) {
        if (initializers instanceof ServletContextinitializer) {
            ((ServletContextinitializer) initializers).onStartup(servletContext);
        }
        else {
            for (ServletContextinitializer initializer : (ServletContextinitializer[]) initializers) {
                initializer.onStartup(servletContext);
            }
        }
    }
}
项目:websec-saml2sp    文件:MvcConfig.java   
/**
 * Servlet context initializer that sets a custom session cookie name.
 *
 * Otherwise,saml2sp and WSO2's Identity Server overwrite each other's session cookie if they are
 * both serving localhost (on different ports). This breaks the SSO flow.
 *
 * @return a context initializer that sets the session cookie name to {@code "SAML2SPSESSIONID"}.
 */
@Bean
public ServletContextinitializer servletContextinitializer() {
    return new ServletContextinitializer() {

        @Override
        public void onStartup(ServletContext servletContext) throws servletexception {
            servletContext.getSessionCookieConfig().setName("SAML2SPSESSIONID");
        }
    };
}
项目:SpringFrameworkSamples    文件:JsfConfiguration.java   
@Bean
public ServletContextinitializer contextinitializer(){
    ServletContextinitializer listener = new ServletContextinitializer() {
        @Override
        public void onStartup(ServletContext servletContext)
                throws servletexception {
            servletContext.setinitParameter("primefaces.THEME","glass-x");

        }
    };

    return listener;
}
项目:spring-security-stateless    文件:AppConfig.java   
@Bean
ServletContextinitializer noSessionTrackingServletContextinitializer() {
    return servletContext -> servletContext.setSessionTrackingModes(Collections.emptySet());
}
项目:citizenship-appointment-server    文件:AppConfig.java   
@Bean
public ServletContextinitializer noSessionTrackingServletContextinitializer() {
    return servletContext -> servletContext.setSessionTrackingModes(Collections.emptySet());
}
项目:contestparser    文件:TomcatStarter.java   
TomcatStarter(ServletContextinitializer[] initializers) {
    this.initializers = initializers;
}
项目:contestparser    文件:UndertowEmbeddedServletContainerFactory.java   
Initializer(ServletContextinitializer[] initializers) {
    this.initializers = initializers;
}
项目:contestparser    文件:ServletContextinitializerConfiguration.java   
/**
 * Create a new {@link ServletContextinitializerConfiguration}.
 * @param initializers the initializers that should be invoked
 * @since 1.2.1
 */
public ServletContextinitializerConfiguration(
        ServletContextinitializer... initializers) {
    Assert.notNull(initializers,"Initializers must not be null");
    this.initializers = initializers;
}
项目:contestparser    文件:JettyEmbeddedServletContainerFactory.java   
/**
 * Return a Jetty {@link Configuration} that will invoke the specified
 * {@link ServletContextinitializer}s. By default this method will return a
 * {@link ServletContextinitializerConfiguration}.
 * @param webAppContext the Jetty {@link WebAppContext}
 * @param initializers the {@link ServletContextinitializer}s to apply
 * @return the {@link Configuration} instance
 */
protected Configuration getServletContextinitializerConfiguration(
        WebAppContext webAppContext,ServletContextinitializer... initializers) {
    return new ServletContextinitializerConfiguration(initializers);
}

关于基于SpringBoot +方法的分层角色安全性:ServletContext是必需的springboot分层设计的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于idea 启动 springboot 项目 报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader () L...、JSP PageContext.getServletContext()方法——返回ServletContext的实例、JSP Response.getServletContext()方法:返回session所属的ServletContext对象、org.springframework.boot.context.embedded.ServletContextInitializer的实例源码等相关内容,可以在本站寻找。

本文标签: