东莞电子网站建设哪儿有,网站qq启动链接怎么做,元氏网站建设,子域名大全查询什么是Spring Security Spring Security是 Spring提供的安全认证服务的框架。 使用Spring Security可以帮助我 们来简化认证和授权的过程。 官网#xff1a;Spring Security 对应的maven坐标#xff1a;
!--security启动器--
dependencygroupIdor…什么是Spring Security Spring Security是 Spring提供的安全认证服务的框架。 使用Spring Security可以帮助我 们来简化认证和授权的过程。 官网Spring Security 对应的maven坐标
!--security启动器--
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId
/dependency权限控制
认证和授权概念
问题1在生产环境下我们如果不登录后台系统就可以完成这些功能操作吗
答案显然是否定的要操作这些功能必须首先登录到系统才可以。
问题2是不是所有用户只要登录成功就都可以操作所有功能呢
答案是否定的并不是所有的用户都可以操作这些功能。不同的用户可能拥有不同的权限这就需要进行授权了。
认证系统提供的用于识别用户身份的功能通常提供用户名和密码进行登录其实就是在进行认证认证的目的是让系统知道你是谁。
授权用户认证成功后需要为用户授权其实就是指定当前用户可以操作哪些功能。
权限模块数据模型5张表和七张表 前面已经分析了认证和授权的概念要实现最终的权限控制需要有一套表结构支撑 用户表user、权限表permission、角色表role、菜单表menu、用户角色关系表 user_role、角色权限关系表role_permission、角色菜单关系表role_menu。
5张表 用户表user(name,password):阿三阿五 用户角色关联表user_role(user_id,role_id) 角色表role(name):院长医生护士 角色权限许可关联表relo_permission(role_id,permission_id) 权限许可表permission(name):(菜单)检查项管理检查组管理;(菜单内按钮)删除检查项编辑检查组 7张表 用户表user(name,password):阿三阿五 用户角色关联表user_role(user_id,role_id) 角色表role(name):院长医生护士 角色菜单许可关联表roel_menu(role_id,menu_id) 菜单许可表menu(name): 检查项管理检查组管理 角色按钮许可关联表role_permission(role_id,permission_id) 按钮许可表表permission(name):删除检查项编辑检查组 认证过程只需要用户表就可以了在用户登录时可以查询用户表user进行校验判断用户输入的用户名和密码是否正确。
授权过程用户必须完成认证之后才可以进行授权首先可以根据用户查询其角色再根据角色查询对应的菜单这样就确定了用户能够看到哪些菜单。然后再根据用户的角 色查询对应的权限这样就确定了用户拥有哪些权限。所以授权过程会用到上面5张表或者7张表。
同款产品对比
常用的权限框架除了Spring Security还有Apache的shiro框架。
SpringSecurity
特点
⚫ 和 Spring 无缝整合。
⚫ 全面的权限控制。
⚫ 专门为 Web 开发而设计。
◼旧版本不能脱离 Web 环境使用。
◼新版本对整个框架进行了分层抽取分成了核心模块和 Web 模块。单独引入核心模块就可以脱离 Web 环境。
⚫ 重量级。
Shiro
Apache 旗下的轻量级权限控制框架。
特点
⚫ 轻量级。Shiro 主张的理念是把复杂的事情变简单。针对对性能有更高要求
的互联网应用有更好表现。
⚫ 通用性。
◼好处不局限于 Web 环境可以脱离 Web 环境使用。
◼缺陷在 Web 环境下一些特定的需求需要手动编写代码定制。 Spring Security 是 Spring 家族中的一个安全管理框架实际上在 Spring Boot 出现之前Spring Security 就已经发展了多年了但是使用的并不多安全管理这个领域一直是 Shiro 的天下。 相对于 Shiro在 SSM 中整合 Spring Security 都是比较麻烦的操作所以Spring Security 虽然功能比 Shiro 强大但是使用反而没有 Shiro 多Shiro 虽然功能没有Spring Security 多但是对于大部分项目而言Shiro 也够用了。 自从有了 Spring Boot 之后Spring Boot 对于 Spring Security 提供了自动化配置方案可以使用更少的配置来使用 Spring Security。 因此一般来说常见的安全管理技术栈的组合是这样的
• SSM Shiro
• Spring Boot/Spring Cloud Spring Security
以上只是一个推荐的组合而已如果单纯从技术上来说无论怎么组合都是可以运行的