Java 弹簧靴嵌入Tomcat';允许链接';财产
我一直在寻找一种公开属性“AllowLink”的方法,以允许TomcatEmbeddedServletContainerFactory跟踪documentRoot下资源的符号链接 根据Tomcat 8迁移文档,此功能切换到Tomcat 8+的“资源”标签:Java 弹簧靴嵌入Tomcat';允许链接';财产,java,spring-boot,embedded-tomcat-8,Java,Spring Boot,Embedded Tomcat 8,我一直在寻找一种公开属性“AllowLink”的方法,以允许TomcatEmbeddedServletContainerFactory跟踪documentRoot下资源的符号链接 根据Tomcat 8迁移文档,此功能切换到Tomcat 8+的“资源”标签: 在为Spring启动应用程序以编程方式配置TomcatEmbeddedServletContainerFactory时,如何公开此属性?我遇到了完全相同的问题,并且能够实现以下方法来解决此问题: @Bean public Embedded
在为Spring启动应用程序以编程方式配置TomcatEmbeddedServletContainerFactory时,如何公开此属性?我遇到了完全相同的问题,并且能够实现以下方法来解决此问题:
@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;
}
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;
}
@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;
}