You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat 7.0.73至7.0.92版本AllowLinking功能失效问题求助

解决Tomcat 7.0.92中符号链接访问失败的问题

我之前帮同事排查过完全一致的问题,Tomcat 7.0.92在符号链接的处理逻辑上确实和7.0.73有个关键变动,而且这个改动在常规变更日志里藏得比较深,很容易漏掉。

问题根源

Tomcat从7.0.82版本开始,对符号链接的安全校验做了强化。虽然你已经把allowLinking设为true,但这个参数在高版本里的行为变了:

  • 7.0.73及更早版本:allowLinking=true直接允许所有符号链接,不管是指向Web应用内部还是外部目录
  • 7.0.92版本:allowLinking=true仅允许指向Web应用内部的符号链接,如果你的链接是指向外部目录的,必须额外开启allowUnsafeLinking参数

修复步骤

  1. 修改Context配置
    打开Tomcat 7.0.92的conf/context.xml(如果是单个Web应用的问题,也可以修改对应应用的META-INF/context.xml),在<Context>标签里添加allowUnsafeLinking="true":

    <Context allowLinking="true" allowUnsafeLinking="true">
        <!-- 你的其他配置项 -->
    </Context>
    
  2. 校验权限设置
    确保运行Tomcat的系统用户,对符号链接的目标目录拥有读取权限;同时符号链接本身的权限也要正常(比如Linux下至少是rwxr-xr-x,Windows下要保证用户能访问链接目标)。

  3. 重启Tomcat
    配置修改后必须重启服务,之后再访问符号链接指向的资源应该就能正常加载了。

补充说明

这个allowUnsafeLinking参数是Tomcat为了平衡安全性和兼容性新增的,官方文档里只是简单提了一句,没放在显眼的版本变更说明里,所以很容易踩坑。如果你的符号链接是指向Web应用内部的目录,其实不需要开这个参数,但如果是跨外部目录,就必须加上。

内容的提问来源于stack exchange,提问作者BrandG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:13:33