【问题标题】:Spring Boot Embedded Tomcat 'allowLinking' propertySpring Boot 嵌入式 Tomcat 'allowLinking' 属性
【发布时间】:2016-01-06 18:46:53
【问题描述】:

我一直在寻找一种方法来公开属性“allowLinking”以允许 TomcatEmbeddedServletContainerFactory 遵循指向其 documentRoot 下资源的符号链接。

根据 Tomcat 8 迁移文档,此功能切换到 Tomcat 8+ 的“资源”标签:Tomcat 8 Migration Guide

<!-- Tomcat 7: -->
<Context allowLinking="true" />

<!-- Tomcat 8: -->
<Context>
  <Resources allowLinking="true" />
</Context>

在以编程方式为 Spring Boot 应用程序配置 TomcatEmbeddedServletContainerFactory 时如何公开此属性?

【问题讨论】:

    标签: java spring-boot embedded-tomcat-8


    【解决方案1】:

    我遇到了完全相同的问题,并且能够实施以下方法来解决此问题:

    @Bean
    public EmbeddedServletContainerFactory servletContainer() 
    {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
        // allow symbolic links under the filesystem context
        // don't use this on Windows!
        if (IOCase.SYSTEM.isCaseSensitive())
        {
            Log.info("Enabling support for symbolic links on the webserver.");
            for (TomcatContextCustomizer customizer : tomcat.getTomcatContextCustomizers())
            {
                StandardContext context = new StandardContext();
                context.setAllowLinking(true);
                customizer.customize(context);
            }
        }
        return tomcat;
    }
    

    【讨论】:

      【解决方案2】:

      thks Erik Brandsberg,修改代码,在 Tomcat 8 中解决这个问题

      @Bean
      public EmbeddedServletContainerFactory servletContainer()
      {
          TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
          // allow symbolic links under the filesystem context
          // don't use this on Windows!
          if (IOCase.SYSTEM.isCaseSensitive())
          {
              TomcatContextCustomizer customizer = new TomcatContextCustomizer() {
                  @Override
                  public void customize(Context context) {
                      StandardRoot r = new StandardRoot();
                      r.setAllowLinking(true);
                      context.setResources(r);
                  }
              };
              tomcat.addContextCustomizers(customizer);
      
          }
          return tomcat;
      }
      

      【讨论】:

        猜你喜欢
        • 2017-03-12
        • 1970-01-01
        • 2018-05-28
        • 1970-01-01
        • 2018-06-27
        • 2015-10-06
        • 2018-10-03
        • 1970-01-01
        • 2018-01-08
        相关资源
        最近更新 更多