从零配置若依自定义上传目录:权限放行+资源映射,一步到位
- 若依(ruoyi)
- 时间:2026-01-29 18:07
- 47人已阅读
简介
若依开发者必看:自定义文件目录401错误,一文彻底解决问题场景很多若依开发者配置了自定义文件上传目录(如/safety-task/file/image/)后,访问时却遇到401认证失败,而系统默认的/profile/upload/路径却能正常访问。问题根源若依框架中,自定义目录需要双重配置才能正常访问:SecurityConfig.java-权限放行ResourcesConfig.java-资源映
🔔🔔好消息!好消息!🔔🔔
有需要的朋友👉:微信号
若依开发者必看:自定义文件目录401错误,一文彻底解决
问题场景
很多若依开发者配置了自定义文件上传目录(如 /safety-task/file/image/)后,访问时却遇到 401认证失败,而系统默认的 /profile/upload/ 路径却能正常访问。
问题根源
若依框架中,自定义目录需要双重配置才能正常访问:
SecurityConfig.java - 权限放行
ResourcesConfig.java - 资源映射
两者缺一不可!
🔧 完整解决方案
步骤一:修改 SecurityConfig.java
修改代码:

在 filterChain 方法的 permitAll 列表中添加你的自定义路径:
// 找到这行代码 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() // 修改为(添加你的自定义目录) .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**", "/safety-task/**").permitAll()
步骤二:修改 ResourcesConfig.java
修改代码:

添加自定义目录的资源映射处理器:
@Configuration
public class ResourcesConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 系统默认配置
registry.addResourceHandler("/profile/**")
.addResourceLocations("file:" + HdtdBaseConfig.getProfile() + "/");
// 🔥 新增自定义目录配置
registry.addResourceHandler("/safety-task/**")
.addResourceLocations("file:" + HdtdBaseConfig.getProfile() + "/safety-task/");
}
}📁 配置文件关联说明
application.yml:定义了文件存储的基础路径
hdtdbase.profileHdtdBaseConfig.java:获取配置文件中的路径
SecurityConfig.java:控制访问权限
ResourcesConfig.java:建立URL与本地文件的映射关系
🎯 验证效果
修改完成后,访问路径的映射关系如下:
http://localhost:28080/safety-task/file/image/test.jpg ↓ 映射到本地 D:/ruoyi/uploadPath/safety-task/file/image/test.jpg
⚠️ 重要提醒
必须重启服务:配置修改后需要重启Spring Boot应用
路径一致性:确保SecurityConfig和ResourcesConfig中的路径完全一致
文件权限:检查服务器文件系统是否具有读取权限
目录存在性:确认目标文件夹在服务器上真实存在
💡 扩展建议
如果你有多个自定义目录,可以统一管理:
// 在SecurityConfig中
.antMatchers(HttpMethod.GET, "/custom-dir1/**", "/custom-dir2/**").permitAll()
// 在ResourcesConfig中
registry.addResourceHandler("/custom-dir1/**")
.addResourceLocations("file:" + HdtdBaseConfig.getProfile() + "/custom-dir1/");
registry.addResourceHandler("/custom-dir2/**")
.addResourceLocations("file:" + HdtdBaseConfig.getProfile() + "/custom-dir2/");📊 配置对照表
| 配置项 | 作用 | 默认路径 | 自定义路径 |
|---|---|---|---|
| SecurityConfig | 权限控制 | ✅ 已配 | ❌ 需手动添加 |
| ResourcesConfig | 资源映射 | ✅ 已配 | ❌ 需手动添加 |
| 最终效果 | 可匿名访问 | ✅ 正常 | ✅ 配置后正常 |
总结:若依框架中自定义文件目录的访问问题,本质是权限放行与资源映射的同步配置。按照上述两步操作,即可彻底解决401认证失败问题。
如果有其他自定义路径需求,只需按照相同模式配置即可。觉得有用欢迎点赞收藏,避免下次再踩坑!