springboot + shiro 下载文件时浏览器提示“无法下载-没有权限”或“无法下载-没有文件”问题
springboot + shiro 下载文件时浏览器提示“无法下载-没有权限”或“无法下载-没有文件”问题
- 1. 预期效果
- 2. 问题描述
- 3. 问题排查
- 4. 解决方案
- 5. 总结
1. 预期效果
后端编写文件下载接口,前端通过浏览器的下载将文件保存到本地。
2. 问题描述
前后端代码在不同主机运行,后端使用 postman 测试下载接口可以正常下载文件,但在前端下载文件浏览器会提示“无法下载-没有权限”或“无法下载-没有文件”。
3. 问题排查
- 前端触发下载并没有进入后端下载接口的断点,猜测可能与后端使用的 shiro 框架有关。
- 在 shiro 框架中放行该请求的 url,前端即可正常下载文件,说明该问题与 shiro 有关。
- 在 shiro 框架的相关代码 debug 发现,当前端触发下载时,executeLogin 方法获取不到请求体的 token,所以前端的下载请求就被拦截返回了,没有进入后端的下载接口。
4. 解决方案
- 检查前端是否传了 token 信息?方式是什么样的?
- 检查 executeLogin 是如何获取 token 信息的?是否与前端的方式匹配?
5. 总结
本问题的关键点是 shiro 框架会对前端的请求进行身份验证,只要前端传了 token 等身份认证信息,后端再正常接收,前端的请求就可以正常进入到后端接口。
相关文章:
springboot + shiro 下载文件时浏览器提示“无法下载-没有权限”或“无法下载-没有文件”问题
springboot shiro 下载文件时浏览器提示“无法下载-没有权限”或“无法下载-没有文件”问题 1. 预期效果2. 问题描述3. 问题排查4. 解决方案5. 总结 1. 预期效果 后端编写文件下载接口,前端通过浏览器的下载将文件保存到本地。 2. 问题描述 前后端代码在不同主机…...
ChatGLM-6B 部署与 P-Tuning 微调实战-使用Pycharm实战
国产大模型ChatGLM-6B微调部署入门-使用Pycharm实战 1.ChatGLM模型介绍 ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本…...
【雕爷学编程】MicroPython动手做(11)——搭建掌控板IDE开发环境四种
为了能够打好基础,系统学习MicroPython,特地入手了二块掌控板 知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通…...
uniapp android底部弹框
uniapp android底部弹框,带有动画效果 <view class"popup_box"><view class"bottom_more" click"handleClickCancel"><image src"/static/images/rescue/icon_more.png"></image></view><…...
hashedWheelTimer类
hashedWheelTimer类 目录概述需求: 设计思路实现思路分析1.hashedWheelTimer类 拓展实现 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait …...
【自动化测试】Selenium IDE脚本编辑与操作
之前,我们录制脚本时是录制鼠标和键盘的所有在浏览器的操作,那么脚本会出现多余的步骤,有时候我们需要手动填写脚本或修改脚本,所以我们有必要对selenium IDE脚本编辑与操作有所了解;(采用录制的方式很容易…...
杭电多校2023“钉耙编程”中国大学生算法设计超级联赛(5)
1006Touhou Red Red Blue dp 设状态方程为前i个数中,当前第一个包里面的是0/1/2/3状态,第二个包里面是0/1/2/3状态 0代表着还没有颜色,1代表R,2代表G,3代笔B颜色 初始状态都没选择颜色所以都是状态0 没选择颜色只…...
Matlab进阶绘图第24期—悬浮柱状图
悬浮柱状图是一种特殊的柱状图。 与常规柱状图相比,悬浮柱状图可以通过悬浮的矩形展示最小值到最大值的范围(或其他范围表达),因此在多个领域得到应用。 本文使用自己制作的Floatingbar小工具进行悬浮柱状图的绘制,先…...
【题解】链表中倒数最后k个结点、删除链表的倒数第n个节点
文章目录 链表中倒数最后k个结点删除链表的倒数第n个节点 链表中倒数最后k个结点 题目链接:链表中倒数最后k个结点 解题思路1:先找长度再找k对应的节点 首先遍历一遍链表找到链表的长度n 然后比较长度和k的大小关系,如果比k小,…...
网络安全大厂面试题
自我介绍 有没有挖过src? 平时web渗透怎么学的,有实战吗?有过成功发现漏洞的经历吗? 做web渗透时接触过哪些工具 xxe漏洞是什么?ssrf是什么? 打ctf的时候负责什么方向的题 为什么要搞信息安全,对…...
7.事件类型
7.1鼠标事件 案例-轮播图点击切换 需求:当点击左右的按钮,可以切换轮播图 分析: ①右侧按钮点击,变量,如果大于等于8,则复原0 ②左侧按钮点击,变量–,如果小于0,则复原最后一张 ③鼠…...
ts中声明引入未使用的报错——解决方案
在编写ts项目的时候,经常会出现如下报错: 导入声明中的所有导入都未使用 这是因为导入的模块暂时没有使用,ts给的一个提示信息 解决方案: 在ts.config.json中 把noUnusedLocals 设置为false即可 {"compilerOptions"…...
集团MySQL的酒店管理系统
酒店管理系统 概述 基于Spring Spring MVC MyBatis的酒店管理系统,主要实现酒店客房的预定、入住以及结账等功能。使用Maven进行包管理。 用户端主要功能包括: 登录注册、客房预订、客房评论(编写评论和查看评论) 后台管理主要…...
Kotlin基础(九):对象和委托
前言 本文主要讲解kotlin对象和委托。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 对象 在Kotlin中,对象(Object)是一个具有特殊用途的单例实例。它是一种创建单个实例的方式,确保在整个应用程序中只存在一个特…...
八大排序算法--希尔排序(动图理解)
目录 希尔排序 概念 算法思路 动画演示 代码如下 复杂度分析 时间复杂度测试 运行结果 完整代码 创作不易,如果本篇博客对您有一定的帮助,大家记得留言点赞哦。 希尔排序 概念 希尔排序是插入排序的一种,是对直接插入排序的优化。其…...
数据结构之常见排序算法
文章目录 1.排序概念2.10种排序比较3.排序算法3.1直接插入排序(元素越有序,越高效)3.2希尔排序序( 缩小增量排序 )3.3直接选择排序3.5堆排序3.6冒泡排序3.8快速排序 递归实现(无序使用最好)3.8.1挖坑法 (建…...
Java版企业电子招标采购系统源代码Spring Boot + 二次开发 + 前后端分离 构建企业电子招采平台之立项流程图
项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审…...
2.2 模型与材质基础
一、渲染管线与模型基础 1. 渲染管线 可编程阶段(蓝色区域): 1顶点着色器 2几何着色器 3片元着色器 2. 模型的实现原理 UV:在建模软件中,进行UV展开,UV会放在一个横向为U纵向为V,范围࿰…...
什么是Docker
一 、什么是Docker 1.1 简介 Docker 使用 Google 公司推出的 Go 语言 (opens new window)进行开发实现,基于 Linux 内核的 cgroup (opens new window),namespace (opens new window),以及 OverlayFS (opens new window)类的 Union FS (open…...
1109. 航班预订统计
这里有 n 个航班,它们分别从 1 到 n 进行编号。 有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...
向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
