From 553c29ab8a46c9a07e3657fdd36a81a6bfde1afe Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 23 九月 2021 19:13:58 +0800 Subject: [PATCH] update 整合 satoken 权限、鉴权一体化框架 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java | 46 ++++++++++++++++++++++++++++------------------ 1 files changed, 28 insertions(+), 18 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index ff37991..4acc311 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -1,8 +1,10 @@ package com.ruoyi.web.controller.system; +import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpException; import cn.hutool.http.HttpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.annotation.Log; @@ -29,7 +31,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -49,7 +50,7 @@ * @author Lion Li */ @Validated -@Api(value = "OSS浜戝瓨鍌ㄦ帶鍒跺櫒", tags = {"OSS浜戝瓨鍌ㄧ鐞�"}) +@Api(value = "OSS瀵硅薄瀛樺偍鎺у埗鍣�", tags = {"OSS瀵硅薄瀛樺偍绠$悊"}) @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/system/oss") @@ -59,24 +60,24 @@ private final ISysConfigService iSysConfigService; /** - * 鏌ヨOSS浜戝瓨鍌ㄥ垪琛� + * 鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃 */ - @ApiOperation("鏌ヨOSS浜戝瓨鍌ㄥ垪琛�") - @PreAuthorize("@ss.hasPermi('system:oss:list')") + @ApiOperation("鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃") + @SaCheckPermission("system:oss:list") @GetMapping("/list") public TableDataInfo<SysOssVo> list(@Validated(QueryGroup.class) SysOssBo bo) { return iSysOssService.queryPageList(bo); } /** - * 涓婁紶OSS浜戝瓨鍌� + * 涓婁紶OSS瀵硅薄瀛樺偍 */ - @ApiOperation("涓婁紶OSS浜戝瓨鍌�") + @ApiOperation("涓婁紶OSS瀵硅薄瀛樺偍") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "鏂囦欢", dataType = "java.io.File", required = true), }) - @PreAuthorize("@ss.hasPermi('system:oss:upload')") - @Log(title = "OSS浜戝瓨鍌�", businessType = BusinessType.INSERT) + @SaCheckPermission("system:oss:upload") + @Log(title = "OSS瀵硅薄瀛樺偍", businessType = BusinessType.INSERT) @RepeatSubmit @PostMapping("/upload") public AjaxResult<Map<String, String>> upload(@RequestPart("file") MultipartFile file) { @@ -90,8 +91,8 @@ return AjaxResult.success(map); } - @ApiOperation("涓嬭浇OSS浜戝瓨鍌�") - @PreAuthorize("@ss.hasPermi('system:oss:download')") + @ApiOperation("涓嬭浇OSS瀵硅薄瀛樺偍") + @SaCheckPermission("system:oss:download") @GetMapping("/download/{ossId}") public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException { SysOss sysOss = iSysOssService.getById(ossId); @@ -103,16 +104,25 @@ response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); FileUtils.setAttachmentResponseHeader(response, URLEncoder.encode(sysOss.getOriginalName(), StandardCharsets.UTF_8.toString())); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8"); - long data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false); + long data; + try { + data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false); + } catch (HttpException e) { + if (e.getMessage().contains("403")) { + throw new ServiceException("鏃犺鍙栨潈闄�, 璇峰湪瀵瑰簲鐨凮SS寮�鍚�'鍏湁璇�'鏉冮檺!"); + } else { + throw new ServiceException(e.getMessage()); + } + } response.setContentLength(Convert.toInt(data)); } /** - * 鍒犻櫎OSS浜戝瓨鍌� + * 鍒犻櫎OSS瀵硅薄瀛樺偍 */ - @ApiOperation("鍒犻櫎OSS浜戝瓨鍌�") - @PreAuthorize("@ss.hasPermi('system:oss:remove')") - @Log(title = "OSS浜戝瓨鍌�" , businessType = BusinessType.DELETE) + @ApiOperation("鍒犻櫎OSS瀵硅薄瀛樺偍") + @SaCheckPermission("system:oss:remove") + @Log(title = "OSS瀵硅薄瀛樺偍" , businessType = BusinessType.DELETE) @DeleteMapping("/{ossIds}") public AjaxResult<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖") @PathVariable Long[] ossIds) { @@ -123,8 +133,8 @@ * 鍙樻洿鍥剧墖鍒楄〃棰勮鐘舵�� */ @ApiOperation("鍙樻洿鍥剧墖鍒楄〃棰勮鐘舵��") - @PreAuthorize("@ss.hasPermi('system:oss:edit')") - @Log(title = "OSS浜戝瓨鍌�" , businessType = BusinessType.UPDATE) + @SaCheckPermission("system:oss:edit") + @Log(title = "OSS瀵硅薄瀛樺偍" , businessType = BusinessType.UPDATE) @PutMapping("/changePreviewListResource") public AjaxResult<Void> changePreviewListResource(@RequestBody String body) { Map<String, Boolean> map = JsonUtils.parseMap(body); -- Gitblit v1.9.3