Sa-Token 如何忽略鉴权?三种方式让你灵活放行接口!
视频看了几百小时还迷糊关注我几分钟让你秒懂在使用Sa-Token做权限控制时我们通常希望/login、/register、/health等接口无需登录即可访问Swagger 文档、静态资源、验证码接口跳过鉴权某些临时调试接口暂时关闭权限校验。但如果你配置了全局拦截器所有请求都会被拦截返回401 Unauthorized怎么办本文将教你三种官方推荐方式安全、灵活地忽略 Sa-Token 鉴权并附上完整 Spring Boot 示例 反例避坑指南 一、前提你已配置全局拦截器假设你已经注册了 Sa-Token 的全局路由拦截器这是最佳实践Configuration public class SaTokenConfig implements WebMvcConfigurer { Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SaRouteInterceptor()) .addPathPatterns(/**); // 拦截所有请求 } }此时所有接口都需要登录才能访问。我们需要“放行”部分路径。✅ 方法一excludePathPatterns推荐最常用在注册拦截器时直接排除不需要鉴权的路径。Configuration public class SaTokenConfig implements WebMvcConfigurer { Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SaRouteInterceptor()) .addPathPatterns(/**) .excludePathPatterns( /login, /register, /captcha, /health, /doc.html, /webjars/**, /swagger-resources/**, /v3/api-docs/** ); } }✅优点配置清晰、性能高、无侵入适用场景公开接口、文档、健康检查等✅ 方法二SaIgnore 注解方法级忽略如果你只想忽略某个 Controller 方法可以用SaIgnore注解。1. 确保你的 Sa-Token 版本 ≥ 1.25.02. 在方法上加注解RestController public class PublicController { SaIgnore // ← 忽略 Sa-Token 鉴权 GetMapping(/public/hello) public String hello() { return 无需登录也能访问; } SaIgnore PostMapping(/register) public String register(RequestBody User user) { // 注册逻辑 return 注册成功; } }✅优点精准控制适合临时放行⚠️注意该注解只对 SaRouteInterceptor 生效对自定义拦截器无效✅ 方法三在拦截器中手动放行高级用法如果你有复杂的放行逻辑比如根据 IP、Header 动态判断可以在自定义拦截器中处理。public class CustomSaInterceptor extends SaRouteInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { String uri request.getRequestURI(); // 自定义放行规则 if (uri.startsWith(/api/open/) || isWhiteIp(request)) { return true; // 直接放行不执行父类鉴权 } // 否则走正常 Sa-Token 鉴权 return super.preHandle(request, response, handler); } private boolean isWhiteIp(HttpServletRequest request) { String ip request.getRemoteAddr(); return 127.0.0.1.equals(ip) || 192.168.1.100.equals(ip); } }然后注册这个自定义拦截器Configuration public class InterceptorConfig implements WebMvcConfigurer { Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new CustomSaInterceptor()) .addPathPatterns(/**); } }✅适用场景IP 白名单、内部系统调用、灰度发布等⚠️ 四、反例错误的忽略方式千万别用❌ 反例1在 Controller 里 try-catch 绕过GetMapping(/test) public String test() { try { StpUtil.checkLogin(); // 手动校验 } catch (Exception e) { // 忽略异常 → 表面上能访问但逻辑混乱 } return xxx; }问题代码冗余无法统一管理容易漏掉权限校验。❌ 反例2全局不注册拦截器靠每个方法手动 checkGetMapping(/user) public String user() { StpUtil.checkLogin(); // 每个方法都写 return ...; }后果极易遗漏后期维护成本高违背“约定优于配置”原则。✅ 正确做法用 excludePathPatterns 或 SaIgnore 五、安全注意事项不要过度放行例如excludePathPatterns(/**)→ 等于没鉴权敏感接口即使公开也要做参数校验比如/register虽然免登录但要防刷、防注入。Swagger 路径要放全常见遗漏- /v3/api-docs - /swagger-ui/** - /doc.html - /webjars/springfox-swagger-ui/**生产环境关闭调试接口可通过 profile 控制Profile(dev) SaIgnore GetMapping(/debug/clear-cache) public String clear() { ... } 六、完整示例项目结构src/main/java └── com.example.satoken ├── config/SaTokenConfig.java ← 拦截器配置 ├── controller │ ├── AuthController.java ← /login放行 │ ├── UserController.java ← /user/info需登录 │ └── PublicController.java ← /public/helloSaIgnore └── SatokenApplication.java测试流程访问/login→ 成功放行访问/user/info→ 返回 401未登录登录后携带 token 访问/user/info→ 成功访问/public/hello→ 无需 token 也能访问 总结如何选择忽略方式场景推荐方式公开接口登录、注册、健康检查excludePathPatterns个别方法临时放行SaIgnore动态规则IP、Header 判断自定义拦截器整个模块免鉴权excludePathPatterns(/open/**)记住鉴权要严放行要明合理使用忽略机制既能保证安全又不失灵活性。视频看了几百小时还迷糊关注我几分钟让你秒懂

相关新闻

【Android毕设全套源码+文档】ssm基于Android的学籍异动管理平台的设计与实现(丰富项目+远程调试+讲解+定制)

【Android毕设全套源码+文档】ssm基于Android的学籍异动管理平台的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/6 22:30:39 阅读更多 →
【Android毕设源码分享】基于springboot+Android的的设计与实现(程序+文档+代码讲解+一条龙定制)

【Android毕设源码分享】基于springboot+Android的的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/6 12:21:54 阅读更多 →
[Web自动化] 反爬虫

[Web自动化] 反爬虫

9.7 反爬虫 9.7.1 反爬虫概念 反爬虫技术是网站为了保护自己的数据不被自动化工具(如爬虫)非法获取而采取的一系列措施。这些措施旨在识别和阻止非正常的访问模式,从而保护网站的数据安全和服务质量。 9.7.2 反爬虫策略及应对 用户代理&a…

2026/7/7 0:52:29 阅读更多 →

最新新闻

SIP协议DoS攻击原理与防御:从InviteFlood实战到纵深防护体系

SIP协议DoS攻击原理与防御:从InviteFlood实战到纵深防护体系

1. 项目概述:从攻击视角审视SIP协议安全最近在复现和测试一些经典的协议层攻击手法,inviteflood这个工具反复被提及。它虽然年头不短,但因其针对的是SIP(Session Initiation Protocol,会话初始协议)这一广泛…

2026/7/7 14:10:50 阅读更多 →
LVI-SAM 多传感器标定实战:3步完成相机-激光雷达-IMU外参对齐

LVI-SAM 多传感器标定实战:3步完成相机-激光雷达-IMU外参对齐

LVI-SAM 多传感器标定实战:3步完成相机-激光雷达-IMU外参对齐在机器人自主导航与SLAM系统中,多传感器融合已成为提升系统鲁棒性和精度的关键手段。LVI-SAM作为激光-视觉-惯性紧耦合SLAM框架的代表,其性能高度依赖于各传感器外参的准确性。本文…

2026/7/7 14:10:50 阅读更多 →
MC6470与MK24FN1M0VDC12的硬件协同与6DOF数据融合实战

MC6470与MK24FN1M0VDC12的硬件协同与6DOF数据融合实战

1. MC6470与MK24FN1M0VDC12的硬件协同架构解析 MC6470作为一款6DOF(六自由度)惯性测量单元(IMU),其核心价值在于集成了三轴加速度计和三轴陀螺仪,能够实时捕捉物体的线性加速度和角速度变化。在实际项目中,我通常将其采…

2026/7/7 14:08:49 阅读更多 →
SPT-AKI存档编辑器终极指南:重新定义你的逃离塔科夫离线体验

SPT-AKI存档编辑器终极指南:重新定义你的逃离塔科夫离线体验

SPT-AKI存档编辑器终极指南:重新定义你的逃离塔科夫离线体验 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh_mir…

2026/7/7 14:08:49 阅读更多 →
雀魂牌谱屋:如何用3个数据分析模块快速提升你的麻将水平?

雀魂牌谱屋:如何用3个数据分析模块快速提升你的麻将水平?

雀魂牌谱屋:如何用3个数据分析模块快速提升你的麻将水平? 【免费下载链接】amae-koromo 雀魂牌谱屋 (See also: https://github.com/SAPikachu/amae-koromo-scripts ) 项目地址: https://gitcode.com/gh_mirrors/am/amae-koromo 你是否经常在雀魂…

2026/7/7 14:06:43 阅读更多 →
终极指南:用tchMaterial-parser一键下载国家中小学智慧教育平台电子课本

终极指南:用tchMaterial-parser一键下载国家中小学智慧教育平台电子课本

终极指南:用tchMaterial-parser一键下载国家中小学智慧教育平台电子课本 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本…

2026/7/7 14:06:43 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻