当前位置: 首页 > article >正文

芋道框架 - 接口设置匿名访问

芋道框架 - 接口设置匿名访问

在芋道(yudao)框架中,有些接口需要开放给外部访问,例如文件上传、验证码获取等。要实现接口的匿名访问,主要有两个步骤:

1. 在接口上添加 @PermitAll

在需要匿名访问的接口方法上加上 @PermitAll 注解,表示该接口不需要认证即可访问。

示例:

@Tag(name = "文件上传")
@RestController
@RequestMapping("/admin-api/file")
public class FileUploadController {@Value("${yudao.file.upload-dir}")private String uploadDir;@PostMapping("/upload")@Operation(summary = "单文件上传")@PermitAllpublic AjaxResult uploadFile(@RequestParam("file") MultipartFile file) {try {// 1. 校验文件if (file.isEmpty()) {return AjaxResult.error("文件不能为空");}if (file.getSize() > 15 * 1024 * 1024) {return AjaxResult.error("文件大小不能超过15MB");}// 2. 调用工具类上传String filePath = FileUploadUtil.upload(file, uploadDir);// 3. 解析文件信息String originalFilename = file.getOriginalFilename();String fileSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));String newFileName = filePath.substring(filePath.lastIndexOf("/") + 1);// 4. 构建返回结果Map<String, Object> map = new HashMap<>();map.put("fileUrl", filePath);          // 完整相对路径map.put("originalSize", file.getSize());map.put("fileSuffix", fileSuffix);     // 文件后缀(如 ".png")map.put("newFileName", newFileName);   // 新文件名(带后缀)map.put("originalName", originalFilename);  // 原文件名return AjaxResult.success(map);} catch (Exception e) {return AjaxResult.error("上传失败:" + e.getMessage());}}}

2. 配置 application.yml 中的忽略路径

在配置文件中 tenant.ignore-urls 配置项中添加接口路径,允许不携带租户信息访问:

tenant:enable: trueignore-urls:- /admin-api/file/upload

完成以上两步后,接口就能在无需登录和无需携带租户编号的情况下访问。适用于如上传文件、验证码、回调等公开接口场景。

一线网资源-全网一站式平台

http://www.lryc.cn/news/2386829.html

相关文章:

  • 熔盐核裂变反应堆:第四代核能技术的重要突破
  • 鸿蒙OSUniApp 实现的日期选择器与时间选择器组件#三方框架 #Uniapp
  • Linux云计算训练营笔记day16(Linux周期性计划任务、Python)
  • 对比Redis与向量数据库(如Milvus)在AI中的应用
  • 【Elasticsearch入门到落地】13、DSL查询详解:分类、语法与实战场景
  • [欠拟合过拟合]机器学习-part10
  • 【windwos】文本编辑器Notepad++ 替代品Notepad--
  • Linux基本指令篇 —— clear指令
  • Anaconda 的基础教程,从入门到精通
  • 阿里云DDoS防护:万一被“黑”了,如何更换IP地址?
  • 机器学习笔记【Week2】
  • 饭卡管理系统(接口文档)
  • 【小白量化智能体】应用2:编写通达信绘图指标及生成Python绘图程序
  • C++23 std::start_lifetime_as:用于隐式生存期类型的显式生存期管理函数 (P2590R2)
  • 总结:进程和线程的联系和区别
  • Innodb底层原理与Mysql日志机制深入刨析
  • JMeter-SSE响应数据自动化
  • 泛型(1)
  • esp8266 点灯科技远程控制继电器
  • MMA: Multi-Modal Adapter for Vision-Language Models论文解读
  • Java中Map集合的遍历方式详解
  • 使用 Cannonballs 进行实用导体粗糙度建模
  • Spring Boot 注解 @ConditionalOnMissingBean是什么
  • 国外常用支付流程简易说明(无代码)
  • (先发再改)测试流程标准文档
  • 亚马逊SP-API开发实战:商品数据获取与操作
  • 行为型:策略模式
  • 知识宇宙-学习篇:开源项目 README 文档该如何写?
  • YOLOv12增加map75指标
  • Avalanche 六期 Workshop 精华合集|Grant 机会、技术深度、项目实战一文回顾!