12 2019 档案
摘要:1. 技术选型: 前后端分离的权限检验 + SpringBoot2.x + Mysql + Mybatis + Shiro + Redis + IDEA + JDK8 2. RBAC权限控制设计 用户 角色(一个用户可以具有多种角色,一个角色可以被多个用户使用,用户与角色为多对多关系) 权限(一个角
阅读全文
摘要:1.什么是会话session : 用户和程序直接的链接,程序可以根据session识别到哪个用户,和javaweb中的session类似 2. 什么是会话管理器SessionManager : 会话管理器管理所有subject的所有操作,是shiro的核心组件,它是一个接口,定义如下: shiro中
阅读全文
摘要:1. shiro进行认证授权时会查询数据库获取用户角色权限信息,每次登录都会去查询,这样对性能会又影响。可以设置缓存,查询时先去缓存中查找,缓存中没有再去数据库查询。 从shiro的架构图中可以看到有一个CacheManager——缓存管理器,可以使用 redis, hashmap, ehcache
阅读全文
摘要:讲解权限角色控制 @RequiresRoles, @RequiresPermissions等注解的使用和编程式控制 配置文件的方式 使用ShiroConfig 注解方式 @RequiresRoles(value={"admin", "editor"}, logical= Logical.AND) 加
阅读全文
摘要:1. shiro的核心过滤器定义在枚举类DefaultFilter 中,一共有11个 ,配置哪个路径对应哪个拦截器进行处理 具体作用为: authc:org.apache.shiro.web.filter.authc.FormAuthenticationFilter 需要认证登录才能访问 user:
阅读全文
摘要:1. 自定义Realm基础 步骤: 创建一个类 ,继承AuthorizingRealm->AuthenticatingRealm->CachingRealm->Realm 重写授权方法 doGetAuthorizationInfo 重写认证方法 doGetAuthenticationInfo 方法:
阅读全文
摘要:1. JdbcRealm 数据库准备 JdbcRealm就是用户的角色,权限都从数据库中读取,也就是用来进行用户认证授权的安全数据源更换为从数据库中读取,其他没有差别,首先在数据库创建三张表: 插入数据: 2. JdbcRealm 配置文件 测试代码
阅读全文
摘要:1. shiro默认自带的realm和常见使用方法 realm作用:Shiro 从 Realm 获取安全数据 默认自带的realm:idae查看realm继承关系,有默认实现和自定义继承的realm 两个概念 principal : 主体的标示,可以有多个,但是需要具有唯一性,常见的有用户名,手机号
阅读全文
摘要:1. 添加依赖 2. Shiro认证和授权流程 2.1 常用API: 2.2 shiro认证流程: 测试代码: 上面这个login方法里面 ,会调用认证器对 usernamePasswordToken 中的用户信息进行认证 2.3 shiro授权流程: 测试代码: 它有三个实现类: 测试代码中使用的
阅读全文
摘要:1. 什么是权限控制 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源, 理解两个概念:用户和资源,权限控制就是让指定的用户,只能操作指定的资源(CRUD),这里的用户 ,也
阅读全文