Shiro简单整理

什么是shiro? 
引用shrio官网的一段描述就是:
 
shiro就是一个综合认证,授权,策略和会话管理的安全框架;
 

为什么是shiro?

和spring security 相比来说更见简单易懂, 能够快速的实现要求;

不和任何框架或者容器绑定, 可独立运行;

About shiro:
 
Subject: 代表当前登陆或者访问的用户;
Authentication:  认证,也就是登陆,我们可以利用Shiro完成登陆,登录时的密码匹配,就是Shiro帮我们完成的;
Authorization:  授权,当我们点一个连接或一个按钮的时候,Shiro会帮我们判断你有没有这个权限,有权先即可执行;
Realms:域,一般是指存储用户信息(用户名,密码,权限,角色)的数据库,也就是保存用户权限等信息的数据源;
SecurityManager:shiro安全管理的顶级对象。它集合或者说调用所有其它相关组件,负责所有安全和权限相关处理过程,就像一个中央集权政府;
SessionManager:  会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中; 如果使用Shiro的话,即便你身处非web环境下,我们也可以使用Session,那个Session,就是Shiro给我们提供的;
Run As:  让已经登录的用户,以另外一个用户的身份,来操作当前的系统;
RememberMe:  记住我,用于登录时记住用户登录信息;

 

权限控制过滤器:

anon为游客可访问, authc为需要登录之后才可以访问, 其他过滤器根据情况自行选择;

 

配置内容:

 

  • securityManager 中需要包含自定义的SessionManager(不同环境shiro提供不同的session管理器), 自定义的Realm(s) , 自定义缓存器等;

  • sessionManager 需要配置需要使用的会话管理器, web相关的管理器为DefaultWebSessionManager;

  • 自定义的realm(s);

  • 自定义的缓存器(cacheManager);

  • 自定义的权限配置 ShiroFilterFactoryBean,  包括接口可访问情况和自定义过滤器等相关信息;

 

登录操作Shiro执行流程图:

 

 

 

 

 

接口调用前shiro生效流程:

 

判断是否拥有访问接口权限的配置方式大体有三种:

  1.  通过url控制(推荐), 这种方式动态的配置各个接口的权限信息; 缺点: 需要额外的配置文件或者jdbc数据保存;

  2.  通过AOP的方式控制权限; 优点: 在接口上直接配置权限信息简单, 简化了配置文件或jdbc的操作; 缺点: 接口权限信息无法动态变动, 如果需要修改权限信息需要修改代码;

  3.  通过代码的方式控制; 优点: 除了简单的权限之外可以添加其他复杂的权限控制方式; 缺点: 同AOP方式;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值