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

使用jfrog无法上传文件至Artifactory OSS的403权限问题求助

解决方案:JFrog CLI上传Artifactory报403 Forbidden(CSRF拦截)

根据你提供的日志和操作细节,问题根源是Artifactory的CSRF保护机制拦截了JFrog CLI的令牌请求,以下是具体解决方法:

1. 修正JFrog CLI的服务器配置URL

日志中显示请求被拦截的路径是/login/artifactory/api/security/token,说明CLI的服务器URL配置错误,导致请求路径带上了多余的/login前缀。

  • 查看当前配置:
    jf config show cctest
    
  • 如果输出的url字段是http://<你的Mac IP或localhost>:8081,将其修改为Artifactory的API基础路径:
    jf config edit cctest
    
    在编辑器中把url更新为http://<你的Mac IP或localhost>:8081/artifactory,保存退出。
  • 重新测试上传:
    jf rt u "test.txt" testrepo --server-id=cctest
    

2. 调整Artifactory的CSRF排除规则

如果URL配置正确但问题仍存在,可以将令牌请求路径加入CSRF保护的排除列表:

  1. 登录Artifactory UI,进入Admin > Security > Settings
  2. 找到CSRF Protection模块,在Excluded Paths中添加:
    /login/artifactory/api/security/token
    
  3. 保存配置后,重启Artifactory容器:
    docker restart artifactory
    
  4. 再次执行上传命令测试。

3. 直接使用API密钥认证(跳过令牌自动获取)

绕过CLI自动获取令牌的流程,直接使用Artifactory生成的API密钥进行认证:

  1. 在Artifactory UI中,进入用户的Edit Profile > API Key,点击Generate API Key(管理员可在Admin > Users中为目标用户生成)
  2. 复制生成的API密钥,更新CLI配置:
    jf config set cctest --apikey=<你的API密钥>
    
  3. 确保配置的url为http://<你的Mac IP或localhost>:8081/artifactory,然后测试上传。

额外验证步骤

确认Ubuntu机器与Mac Docker容器的连通性:

curl http://<你的Mac IP>:8081/artifactory/api/system/ping

如果返回OK,说明网络连通正常;若不通,检查Mac的防火墙设置是否开放8081端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:43:24