【电商项目】测试 授权功能 遇到的问题与解决方案

在测试之前记得注释掉鉴权注解 @PreAuthorize 。

解开前端之前注释掉的axios里的登录认证代码。然后启动前端项目 cmd+yarn serve。

一、点击操作无反应

测试点击修改权限无反应,因为这没涉及到报错,所以我去查看了日志:

经过之前的那些报错经验,我知道了这是SQL语句问题。而且根本原因不在于 SQL 语法本身,而在于参数传递。

日志显示 ==> Parameters: null,这意味着在执行 findById 查询时,传入的 rid参数为空。

根据之前的经验,一般是这两种错误:

  1. 参数类型错误(Long写成long了)。

  2. 后接参数绑定失败:前端传参和后端参数名字没对应上。

事实也确实如此,我属于第二个错误。后端绑定参数应为 rid 而我写成了 id 。

二、报错异常未达预期

本应报403权限不足异常,却报了系统异常

我们让非超级管理员角色登录网站,非超级管理员不可进行角色管理,本应报错权限不足,但实现代码后依旧被全局异常拦截,报错系统异常。

经过查询搜检总结 最有可能的原因有以下几种:

1. SpringSecurity 异常优先级高于 @RestControllerAdvice

Security 的 AccessDeniedException会被框架内置异常处理器优先捕获转发,不会进入全局异常切面。

2. 异常处理器没有注册生效

类未被 Spring 扫描(未放到启动类可扫描包下、未加 @Component),切面直接失效。

3. 处理逻辑错误

++找了好久,最后发现这几种原因都不是,是AccessDeniedException的导包的错误,挺意外的,确实是没注意。应该导入的是springframework的,我导入的是 nio.file 的。++

相关推荐
IT枫斗者枫哥7 分钟前
CompletableFuture失败后返回空列表:异常没了,业务含义也变了
java·后端
知识搬运临时工18 分钟前
一个模板把 AEM 拖进 Full GC 死亡螺旋:300% CPU、7 GB 堆、310 万行堆栈
java·aws
用户4329359280522 分钟前
CoAP还是MQTT:1万只Cat.1水表三个月带宽续航实测
java
知守观32 分钟前
多模块架构演进:横向分层 vs 纵向领域,13 个真实项目的切分对照
java·后端·微服务
Java成神之路-1 小时前
Java String 为什么不可变?和 HashMap 到底有什么关系?
java
paopaokaka_luck1 小时前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts
文丑颜不良啊1 小时前
LeetCode1401~1420题目解析
java·leetcode
Nuanyt1 小时前
LeetCode Hot 100 链表专题2 3 题 (Java)
java·笔记·算法·leetcode·链表
文丑颜不良啊1 小时前
LeetCode1341~1360题目解析
java·leetcode
QianhangQianping2 小时前
撤销重做不是「存快照」:一个可视化编辑器的Operation 设计
java·前端·数据库·typescript·编辑器·前端架构·撤销重做