0
点赞
收藏
分享

微信扫一扫

SpringBoot和SpringCloud 使用Spring security 安全框架 详情

月半小夜曲_ 2022-01-07 阅读 57
先上一个目录结构

//权限管理模块
// 1. 创建一个权限管理的子模块
//2. 引入相关依赖
//    <dependencies>
//<!--        自定义的模块 安全框架 security-->
//        <dependency>
//            <groupId>com.schoolWeb</groupId>
//            <artifactId>spring_security</artifactId>
//            <version>0.0.1-SNAPSHOT</version>
//        </dependency>
//        <dependency>
//            <groupId>com.alibaba</groupId>
//            <artifactId>fastjson</artifactId>
//        </dependency>
//    </dependencies>

//3. 创建一个 权限管理的模块 编写相对应的权限代码 代码比较固定 分享到git 上了
//主要是 菜单管理 角色管理 分配权限 等常用功能

//4. 创建一个 spring_security模块 放在了 common模块里了 他是公共的   代码比较固定 分享到git 上了

// Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。提供了完善的认证机制和方法级的授权功能
// 本质就是过滤器  filter
// 用于 用户认证 和用户授权 两部分
// 如果是基于Session 那么 Spring Security 会对cookie里的sessionid进行解析认证
// 如果是token 则会解析token 然后将当前请求加入到Spring Security 管理的权限信息里去
// 这个玩意 帮我们 取值 放值  帮我们 管理 token 或者 session  不需要我们 自己再去具体实现

// 如果系统的模块众多 每个模块都需要认证 用户根据用户密码进行认证 然后获取一系列的权限 并已用户名为key
// 权限为value的形式存入redis里 根据用户的header头部里的token, Spring Security 解析token 这样判断是否有请求权限

//5. 引入spring_security 的相关依赖
//   <dependencies>
//<!--        自定义的工具类-->
//        <dependency>
//            <groupId>com.schoolWeb</groupId>
//            <artifactId>common_utils</artifactId>
//            <version>0.0.1-SNAPSHOT</version>
//        </dependency>
//        <!-- Spring Security依赖 -->
//        <dependency>
//            <groupId>org.springframework.boot</groupId>
//            <artifactId>spring-boot-starter-security</artifactId>
//        </dependency>
//
//        <dependency>
//            <groupId>io.jsonwebtoken</groupId>
//            <artifactId>jjwt</artifactId>
//        </dependency>
//    </dependencies>

//6. 整合  spring security 框架 具体实现类


//7. 需要一个md5 和ResponseUtil 工具类

//8. 需要配置核心配置类的退出地址  TokenWebSecurityConfig.java

//9. 实现 security提供的UserDetails 接口   SecurityUser.java

//10. 登录校验认证过滤器  配置登录地址   TokenLoginFilter.java

//11. 授权过滤器

//12. 配置好  spring security 框架后 把这个 模块引入到你某个的模块下( 就是步骤2 那个依赖)
// 比如 你 创建的 权限管理模块(acl) 这个模块下
// 就可以引入到这个模块下 在这个模块具体使用spring security 下的功能 比如查询用户数据库

//13. 需要创建一个查询登录和用户权限的实现类 这个类 需要实现 spring security  下的 UserDetailsService 的接口
//  具体实现查询验证 用户登录 得到数据
// 注: 使用这种框架 思想为 :面向接口发开 或者 面向 spring security 开发
// 帮我们 实现了 验证 和授权登录 我们只需要 修改配置文件和 查询数据库数据 验证成功就行了

// 使用了这个security 框架 实现登录后 自己开发的 登录 就无需再用了

 

 

 

 

 

 

 

 

 

 

 

 

举报

相关推荐

0 条评论