芋道框架 - 接口设置匿名访问
芋道框架 - 接口设置匿名访问
在芋道(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
完成以上两步后,接口就能在无需登录和无需携带租户编号的情况下访问。适用于如上传文件、验证码、回调等公开接口场景。
一线网资源-全网一站式平台