shiro学习要点 📅 发布时间:2026/7/8 12:20:45 👁️ 浏览次数: 一、核心四大功能核心核心认证Authentication验证用户身份如账号密码登录确认 你是谁授权Authorization验证用户权限如判断是否能访问某接口 / 操作某资源确认 你能做什么基于角色 / 权限粒度控制会话管理Session Management为任意应用非仅 Web提供统一会话管理支持会话过期、持久化等加密Cryptography内置对称 / 非对称加密算法如 MD5、SHA、AES简化密码加密、数据脱敏等操作无需手动实现加密逻辑。二、核心组件核心架构记住执行流程核心组件遵循Subject→SecurityManager→Realm三层核心流程其余组件为辅助Subject当前操作用户可为人 / 程序所有安全操作都通过 Subject 入口如subject.login()/subject.hasRole()SecurityManagerShiro 核心管理器统筹所有安全操作Subject 所有请求最终都委托给它处理是框架的 大脑RealmShiro 数据来源核心负责获取用户信息认证、获取用户权限 / 角色授权需自定义实现对接数据库 / 缓存 / 配置文件是 Shiro 与业务系统的桥梁辅助组件Authenticator认证器由 SecurityManager 管理负责执行具体认证逻辑Authorizer授权器由 SecurityManager 管理负责执行具体授权逻辑SessionManager会话管理器统一管理 Subject 会话CacheManager缓存管理器缓存用户信息 / 权限 / 角色提升认证授权效率必配减少数据库查询。三、核心执行流程一句话记住用户操作 Subject → Subject 委托给 SecurityManager → SecurityManager 调用 Realm 获取数据 → 完成认证 / 授权 / 会话等操作四、核心使用步骤实战落地通用流程引入依赖Maven/Gradle 引入 shiro-core核心、shiro-webWeb 项目、shiro-springSpring/SpringBoot 集成自定义 Realm继承AuthorizingRealm重写 2 个核心方法doGetAuthenticationInfo认证方法查询用户账号密码返回给 Shiro 做密码校验doGetAuthorizationInfo授权方法查询用户拥有的角色如 admin和权限如 user:add返回给 Shiro 做权限判断配置 Shiro 核心 BeanSpringBoot 为例配置SecurityManager注入自定义 Realm、CacheManager配置ShiroFilterFactoryBean设置过滤规则如哪些接口匿名访问、哪些需要认证 / 角色 / 权限业务代码调用认证Subject subject SecurityUtils.getSubject(); subject.login(new UsernamePasswordToken(账号, 密码));授权subject.hasRole(admin)判断角色、subject.isPermitted(user:add)判断权限退出subject.logout()。五、Web 项目核心过滤规则常用必记通过ShiroFilterFactoryBean配置 URL 过滤规则核心过滤器anon匿名访问无需登录如登录页、静态资源authc必须认证登录才能访问roles[admin]必须拥有指定角色才能访问perms[user:add]必须拥有指定权限才能访问logout退出登录配置后访问该 URL 自动执行 logout。六、核心注解SpringBoot 项目常用简化授权需开启 Shiro 注解支持在 Controller / 方法上标注实现权限控制RequiresAuthentication必须认证才能访问RequiresRoles(admin)必须拥有指定角色RequiresPermissions(user:add)必须拥有指定权限RequiresGuest仅匿名用户可访问。七、生产关键配置避坑 优化密码加密使用HashedCredentialsMatcher配置加密算法如 MD5 盐值salt 散列次数避免明文存储密码缓存集成整合 Redis/Ehcache 作为 CacheManager缓存用户权限 / 角色避免每次请求都查数据库会话配置设置会话过期时间、会话持久化分布式项目避免单点会话丢失异常处理捕获 Shiro 认证 / 授权异常如UnauthorizedException未授权统一返回前端提示分布式支持整合 Redis 实现分布式会话 分布式缓存解决多服务节点权限共享问题。八、核心面试 / 实战考点自定义 Realm 的两个核心方法实现认证 授权密码加密的实现盐值 散列避免彩虹表破解Shiro 与 SpringBoot 的整合配置核心 BeanURL 过滤规则与注解的结合使用分布式项目中 Shiro 的会话和缓存共享方案Redis认证 / 授权异常的统一处理。
SpringBoot+Vue +乡政府管理系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】 摘要 随着信息技术的快速发展,数字化管理在基层政府工作中发挥着越来越重要的作用。乡政府作为基层治理的核心单位,其管理效率和服务水平直接影响农村地区的可持续发展。传统的乡政府管理方式依赖纸质档案和人工操作,存在信息滞后、效率低下… 2026/7/8 21:20:43
C++ 观察者模式 🎯 观察者模式协作关系说明 01、资源获取 >>> 通过网盘分享的文件:CXX观察者模式observer_pattern 链接: https://pan.baidu.com/s/15_ev6Y-ZL0cQjrfIrA7Y9Q?pwdubrb 提取码: ubrb 📖 模式概述 观察者模式(Observ… 2026/7/7 22:32:35
手把手教你用SiameseUIE搭建智能客服信息抽取系统 手把手教你用SiameseUIE搭建智能客服信息抽取系统 在智能客服系统中,每天要处理成千上万条用户咨询——“我的订单还没发货”“退货地址填错了”“发票什么时候开”……这些看似简单的句子,背后藏着大量需要精准识别的关键信息:订单号、状态… 2026/7/5 23:07:11
CUDA 11.7 cuFFT 内部错误排查:RTX 4090 与 PyTorch 1.13 版本兼容性实测 CUDA 11.7 cuFFT 内部错误深度解析:RTX 4090与PyTorch 1.13兼容性实战指南 1. 问题现象与背景分析 当开发者在RTX 4090显卡上运行PyTorch 1.13的FFT运算时,常会遇到以下典型错误: >>> import torch >>> torch.fft.rfft… 2026/7/8 22:42:26
如何在Windows电脑直接安装安卓应用:APK安装器完整指南 如何在Windows电脑直接安装安卓应用:APK安装器完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否想过在Windows电脑上直接运行安卓应用&#x… 2026/7/8 22:42:26
Scikit-learn 1.5.0 集成学习实战:Bagging vs Boosting 在3个数据集上的准确率对比 Scikit-learn 1.5.0 集成学习实战:Bagging与Boosting在3个经典数据集上的性能对比1. 集成学习核心概念与实验设计集成学习通过组合多个基础模型来提升整体预测性能,其核心思想类似于"三个臭皮匠顶个诸葛亮"。在Scikit-learn 1.5.0中࿰… 2026/7/8 22:40:25
NumPy 实现前馈神经网络:MNIST 手写数字识别 95%+ 准确率实战 NumPy 实现前馈神经网络:MNIST 手写数字识别 95% 准确率实战1. 为什么选择纯NumPy实现神经网络?在深度学习框架泛滥的今天,用纯NumPy实现神经网络听起来像是一种"返祖"行为。但正是这种看似原始的方法,能让我们真正理解… 2026/7/8 22:40:25
快手 AB 指标生产场景从 Spark 切换到 Doris:提速 145 倍、资源降 72%,刷新集群规模记录 AB 指标计算链路的性能与成本压力快手 AB 实验平台是公司级指标计算底座,服务全公司业务线,支撑公司级业务决策。在 Spark 时代,AB 指标计算面临计算慢和成本高的问题。以核心指标模板为例,单链路计算耗时约 21 分钟,业… 2026/7/8 22:40:25
TensorFlow 2.x 石头剪刀布数据集:3步使用 tf.data.Dataset 重构数据流 TensorFlow 2.x 石头剪刀布数据集:3步使用 tf.data.Dataset 重构数据流在计算机视觉项目中,高效的数据加载和预处理流程往往决定了模型训练的整体效率。对于TensorFlow开发者而言,tf.data.DatasetAPI提供了比传统ImageDataGenerator更灵活、性… 2026/7/8 22:40:25
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08