52-Shiro-1

1.shiro

安全+权限框架,不光光是权限,而且是一个安全框架

这里额外要声明一下:用户登陆以后,是可以根据用户的权限,给用户设置权限页面的,但是,关于权限分配的代码,明显不应该由后台来写,这里还是要用vue来写,学习shiro的目的主要在于进行校验,而如何用vue进行用户的权限分配来控制其访问,这个方面目前还是一片空白

2.主要功能

①Authentication(登录认证)

②Authorization(授权)

③SessionManagement

④cryptography(加密)

3.shiro架构的一些组成

①Subject:任何可以与应用交互的"用户"

②SecurityManager:相当于SpringMVC里面的DispatcherServlet(前端控制器);是shiro的心脏,所有具体的交互都通过SecurityManager进行控制;它管理所有的subject、且负责进行认证、授权、会话及缓存的管理

③Authenticator:负责Subject认证,是一个扩展点,可以自定义实现;可以使用认证策略(Authentication Strategy),自定义什么情况下,用户认证通过

④Authorizer:授权器,即访问控制器,用来决定主体是否有权限进行相应的操作;即控制用户可以访问哪些功能

⑤Realm:可以有1个或者多个Realm,可以认为是安全实体数据源,即用于获取安全实体的,可以是JDBC实现,也可以是内存实现;由用户提供,所以一般在应用中都需要实现自己的Realm

⑥SessionManager:管理Session生命周期的组件,而shiro不仅仅可以在web下用,也可以在普通的se中用

⑦CacheManager:缓存控制器,来管理如:用户、角色、权限等缓存;因为这些数据很少改变,放到缓存中后可以提高访问性能

⑧Cryptography:密码模块,shiro会提供一些常见的加密组件

4.jar包

在本demo里面exclusion里面写了slf4j,但是实际上shiro是需要slf4j以及log4j的,这里把视频教程里面的需要的jar包全部给列出来-->

-shiro-all-1.3.2.jar

-log4j-1.2.15.jar

-slf4j-api-1.6.1.jar

-slf4j-log4j12-1.6.1.jar

5.配置文件

在视频里面是还有shiro.ini的,但是demo里面只有shiro的xml配置文件

这里必须配置log4j,关于log4j的警告,不着急处理

6.一般流程

①创建Subject

②判断是否已经认证(登录),如果没有认证,把username和pwd封装在一个usernamePasswordToken对象里面

③用这个token进行登录

④session,关于session,是保存在服务端的,现在往session里面存一组map,那么,取得时候一样可以取出来,这就是之前验证CAPTCHA的做法

⑤currentUser这对象,之前是Subject的实例,现在判断用户是否授权(登录),就是用的这个实例

⑥RememberMe就是常见的,如果用户勾选了记住我,那么下次就会自动登录

⑦currentUser(Subject)在login的时候会抛几种异常:

-->UnknowAccountException:没有指定的账户

-->IncorrectCredentialException:凭证异常(账户存在,密码错误)

-->LockedAccountException:用户被锁定的异常

-->AuthenticationException:上面所有异常的父类,还有一些异常暂时不看了

7.role

关于shiro的角色问题,现在单独拿出来讲

currentUser.hasRole可以判断登陆的用户属于哪个角色

8. 具备某项许可

currentUser.isPermitted()

后面写的应该是具备该role的用户可以做的事情的权限

这里的意思是,允许对winnebago这个类型的drive的实例做eagle5这个事

以上就是一种“行为”

9.登出

Subject的logout

关于shiro以后在spring里面的注解等后续再看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值