目录。
- 一. 🦁 为何需要权限管理?
- 二. 🦁 设计思想。
- Ⅰ. 需求分析。
- Ⅱ. 数据库设计。
- Ⅲ. Springsecurity配置。
- Ⅳ. 实现用户注册和登录。
- Ⅴ. 实现权限管理。
- 三. 🦁 写在最后。
- 四. 🦁 文末福利。

大家好,我是狮子!这里是《。Java主题自动审批系统。
》专栏。
我们上一章。分布式Java题目自动审批系统后端开发实战-开始点题。
》建立项目背景总体框架,编写,现在轮廓已经清晰了,现在可以实现编码后台权限认证管理。
编码前,先搞清楚为什么需要权限管理和权限认证的框架有哪些?
一. 🦁 为什么需要权限管理?

日常工作中权限的问题总是伴随着我们,程序员新加入一家公司需要找人开各种权限例如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查询数据的权限等。
很多时候,我们会觉得这么多复杂的申请给工作带来了不便,如果你突然想查一些数据,发现没有申请权限需要重新审批流程时间会延长(这一点在国企中尤为明显)。那为什么还需要如此严格的权限管理?f;
假设医院,医院有病人的病历信息、医生的工作信息、药品的库存信息等。如果这些信息不受限制地分享给医院的每个员工,然后可能会出现以下问题:一些非医务人员有权查看病历,导致患者隐私泄露;医生可以随意更改药品的库存信息,可能导致药物过期或短缺b;一些医务人员可以查看其他同事的工作信息,会破坏团队之间的信任关系等。所以,这些敏感信息,需要权限控制,只授权特定人员进行访问和操作。所以,这些敏感信息,需要权限控制,只授权特定人员进行访问和操作。总的来说,,权限管理是企业确保数据安全的重要措施。根据不同的职位和职责,分配不同的权限,员工只能访问与工作相关的数据,避免泄露和误操作敏感信息。这有助于提高数据的安全性和可靠性,并保护企业的合法权益。
权限管理的目标是。
确保每个岗位的工作人员只能在系统上访问和执行与其职责相关的任务,并限制他们访问其他任务和数据的权利。。常见的权限管理框架有。
Springsecurity。和。Shiro。,我们选择Springsecurity框架!,Springboot更适合;二. 🦁 设计思想。
使用Springsecurity建立授权认证表是一种常见的做法,系统中的用户可以实现身份验证和权限管理。
Ⅰ. 需求分析。
在建立授权认证表之前,需要明确需求和目标。我们的。
Java作业自动审批平台。编制授权认证表的目的是实现用户身份验证和相关权限管理的功能。具体来说,,我们需要实现以下需求:
#xff1用户注册a;允许用户通过用户名和密码注册c;并将其保存到数据库中。
- 用户登录#xff1a;通过用户名和密码,允许注册用户登录验证,并生成相应的身份证明。
- 权限管理:分配不同用户的不同权限,控制其在系统中的操作范围。
- Ⅱ. 数据库设计。
在开始建立授权认证表之前,我们需要设计数据库表来存储用户信息和权限信息;遵循RBAC模型)。
关系图如下::
根据上图我们设计了下表。

#xff08用户表;Admin):存储用户的基本信息,如用户名、密码等。
TABLE。admin。(。 aid。INT。 (。10。)。PRIMARY。KEY。AUTO_INCREMENT。COMMENT。'主键'管理员;,username。VARCHAR。 (。50。)。UNIQUE。NOT。NULL。COMMENT。'姓名',PASSWORD。VARCHAR。 (。255。)。NOT。NULL。COMMENT。'密码',memory。BIGINT。 DEFAULT。0COMMENT。'初始内存大小')。ENGINE。=INNODB。;角色表(Role):存储系统中的角色信息,如管理员、普通用户等。
TABLE。role。(。 rid。INT。 (。10。)。PRIMARY。KEY。AUTO_INCREMENT。COMMENT。'角色表主键',role_name。VARCHAR。 (。50。)。COMMENT。'角色名')。ENGINE。=INNODB。;权限表(Permission):存储系统中的权限信息,例如,访问某个功能的权限。
TABLE。permission。(。 pid。INT。 (。10。)。PRIMARY。KEY。AUTO_INCREMENT。COMMENT。'权限id',permission_name。VARCHAR。 (。50。)。COMMENT。'权限名',url。VARCHAR。 (。100。)。)。ENGINE。=INNODB。;#xff08用户角色关联表;Admin_Role):建立用户与角色之间的关系。
TABLE。admin_role。(。 aid。INT。 (。10。)。,rid。INT。 (。10。)。,PRIMARY。KEY。(。aid。,rid。)。 )。;角色权限相关表#xff08;Role_Permission):在角色和权限之间建立关系。
TABLE。role_permission。(。 rid。INT。 (。10。)。,pid。INT。 (。10。)。,PRIMARY。KEY。(。rid。,pid。)。 )。ENGINE。=INNODB。;Ⅲ. Springsecurity配置。
在项目中引入Springsecurity#xff0c;这里不需要指定版本因为采用了SpringBoot的依赖管理。
协议大于配置。思想,将Springsecurity注册到Springboot维护版仓库,所以这里的Springsecurity版本和Springbot版本是一致的。
org.springframework.boot。。groupId。>spring-boot-starter-security。。artifactId。>。dependency。>并进行相应的配置。主要配置包括:。
配置用户认证指定用户认证的方式,例如基于数据库的认证。
- 配置权限管理定义系统中的角色和权限,并分配给用户。
- #xff1配置登录认证a;指定登录页面、成功登录后跳转页面等相关配置。
- #xff1配置访问控制a;定义系统中不同URL路径的访问权限(网盘系统使用Handler)。
- Ⅳ. 实现用户注册和登录。
在系统中实现用户注册和登录的功能,包括以下步骤:
这里需要注意几点:需要提前指定用户注册和登录的前端页面名称和跳转路径,因此,有必要与前端工程师就!达成协议;!!
创建用户注册页面接收用户输入的用户名和密码,并将其保存到数据库的用户表中。
- 创建用户登录页面接收用户输入的用户名和密码,并通过Springsecurity进行认证。
- 创建用户登录页面接收用户输入的用户名和密码,并通过Springsecurity进行认证。
- 配置Springsecurity的认证方法,验证用户输入的用户名和密码是否与数据库中的用户信息相匹配。
- Springsecurity登录认证成功后的处理,例如,生成身份证明,跳转到指定页面等。
Ⅴ. 实现权限管理。
实现系统中权限管理的功能,包括以下步骤:
创建角色和权限的管理页面,用于添加、编辑和删除角色和权限信息。
角色表和权限表在数据库中的维护#xff0c;并建立角色与权限之间的关系。
Springsecurity配置权限管理将系统中定义的角色和权限映射到Springsecurity的配置中。
根据用户的角色信息,在系统中控制用户的操作权限。
三. 🦁 写在最后。
假如说我比别人看得远一点,#xff0c;那是因为我站在巨人的肩膀上。
——牛顿。
这是文章的结尾,你有收获?

四. 🦁 文末福利。
为了让大家学得更好。SpringSecurity。
框架,狮子特意向清华社申请《Spring Security实战一书,

是一本关于 Spring Security 应用指南,主要讲解了 Spring Security 基础知识点,核心概念,以及围绕身份验证和授权过程的关键处理过程。
书籍目录如下::

某东原价 122元现在免费赠书三本。
,以下内容如下::
🦁 送书抽奖活动 🦁
3本活动礼物在评论区挑选三个小伙伴送书。
活动时间: 截止到2023-10-24 20: 00。参与方式: 喜欢,收集这篇文章,并随意评论”。抽奖时间: 2023.10.24。公布时间: 2023.10.24。通知方式:通知群内公布或私信通知。
🦁 推荐其他优质专栏 🦁
🌟Java核心系列#xff08;练习内功无上心法):。 主要是JDK源码的核心解释,几乎每篇文章都超过了万字让您详细掌握每一个知识点!
🌟 《springBoot 源代码剥析核心系列:Springboot源代码剥析和Springboot相关知识点常用的解读。
欢迎加入狮子社区。:『Lion-高级编程之路』,每日收录优质好文。
更多的文章可以继续关注上方博客,我们在2023年的巅峰相遇!