shiro总结

mac2024-05-26  41

一、Shiro核心知识点(RBAC设计框架:基于角色的访问控制) 1、认证:用户名与密码校验 2、授权:用户查询角色,角色拥有的权限 3、Session管理:会话管理 4、加解密: 加密 加盐 解密

》其他:缓存管理、Realm等

二、shiro之Realm(shiro 的数据源) 1、iniRealm – 内置配置 2、jdbcRealm – jdbc访问数据库 3、自定义Reaml - 继承AuthorizingRealm 继承 AuthorizingRealm 重写 doGetAuthorizationInfo 重写 doGetAuthenticationInfo

》》测试认证与授权 三、shiro之过滤器 1、配置文件方式 使用ShiroConfig

2、注解方式 @RequiresRoles(value={“admin”, “editor”}, logical= Logical.AND) 需要角色 admin 和 editor两个角色 AND表示两个同时成立 @RequiresPermissions (value={“user:add”, “user:del”}, logical= Logical.OR) 需要权限 user:add 或 user:del权限其中一个,OR是或的意思。

3、编程方式(主要用于测试用例) Subject subject = SecurityUtils.getSubject(); //基于角色判断 if(subject.hasRole(“admin”)) { //有角色,有权限 } else { //无角色,无权限 } //或者权限判断 if(subject.isPermitted("/user/add")){ //有权限 }else{ //无权限 }

四、shiro之数据安全加解密 @Bean public HashedCredentialsMatcher hashedCredentialsMatcher(){ HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher(); //散列算法,使用MD5算法; hashedCredentialsMatcher.setHashAlgorithmName(“md5”); //散列的次数,比如散列两次,相当于 md5(md5(“xxx”)); hashedCredentialsMatcher.setHashIterations(2); return hashedCredentialsMatcher; }

五、shiro之session管理 1、SessionManager会话管理器管理所有subject的所有操作,是shiro的核心组件 【1】核心方法: //开启一个session Session start(SessionContext context); //指定Key获取session Session getSession(SessionKey key)

2、SessionDao 会话存储/持久化 【1】相关接口及类: SessionDAO AbstractSessionDAO CachingSessionDAO EnterpriseCacheSessionDAO MemorySessionDAO 【2】核心方法: //创建 Serializable create(Session session); //获取 Session readSession(Serializable sessionId) throws UnknownSessionException; //更新 void update(Session session) //删除,会话过期时会调用 void delete(Session session); //获取活跃的session Collection getActiveSessions();

六、shiro与springboot整合与应用

最新回复(0)