跟开涛老师学shiro -- shiro简介】的更多相关文章

1.1  简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了.对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了. 本教程只介绍基本的Shiro使用,不会过多分析源码等,重在使用. Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaS…
在涉及到密码存储问题上,应该加密/生成密码摘要存储,而不是存储明文密码.比如之前的600w csdn账号泄露对用户可能造成很大损失,因此应加密/生成不可逆的摘要方式存储. 5.1 编码/解码 Shiro提供了base64和16进制字符串编码/解码的API支持,方便一些编码解码操作.Shiro内部的一些数据的存储/表示都使用了base64和16进制字符串. String str = "hello"; String base64Encoded = Base64.encodeToString…
之前章节我们已经接触过一些INI配置规则了,如果大家使用过如spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根对象securityManager开始. 4.1 根对象SecurityManager 从之前的Shiro架构图可以看出,Shiro是从根对象SecurityManager进行身份验证和授权的:也就是所有操作都是自它开始的,这个对象是线程安全且真(整)个应用只需要一个即可,因此Shiro提供了Sec…
授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等).在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permission).角色(Role).(这里的资源和权限区别是什么呢?) 主体 主体,即访问应用的用户,在Shiro中使用Subject代表该用户.用户只有授权后才允许访问相应的资源. 资源 在应用中用户可以访问的任何东西,比如访问JSP页面.查看/编辑某些数据.访问某个业务方法.打印文本等等都是资源.用户只要授权后才能…
身份验证,即在应用中谁能证明他就是他本人.一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明. 在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份: principals:身份,即主体的标识属性,可以是任何东西,如用户名.邮箱等,唯一即可.一个主体可以有多个principals,但只有一个Primary principals,一般是用户名/密码/手机号. credentials:证明…
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十八章-并发登录人数控制 shiro中没有提供默认实现,不过可以很容易实现.通过shiro filter机制拓展KickoutSessionControllerFilter. kickoutSessionControllerFilter  ->  将这个filter配置到shiro的配置文件中 -> 遇到的一些问题. 示例代码的结构: 1.…
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 3.客户端 客户端流程可以参照如很多网站的新浪微博登录功能,或其他的第三方帐号登录功能. 客户端进行登录操作 跳到oauth2服务端,进行登录授权.成功后,服务端返回auth code. 客户端使用auth code去服务器换取access token. 客户端根据access token得到用户信息,进行客户端的登…
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介绍 (1)应用场景 很多开放平台,比如新浪微博开放平台,都在使用开发API接口供开发者使用.即带来了,第三方应用要到开放平台授权的问题.OAuth就是做这个的. OAuth2官网:http://oauth.net/2/ OAuth2协议:http://tools.ietf.org/html/rfc6…
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第二十一章-授予身份与切换身份(二) 1.回顾上节 在<2017.2.15 开涛shiro教程-第二十一章-授予身份与切换身份(一)table.entity.service.dao >中,做了这四件事.这只是准备材料,要实现 B 假借 A 的身份进行访问,还需要完成controller部分. 1 table:sys_user_runas 2…
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 第二十一章 授予身份与切换身份(一) 1.使用场景 某个领导因为某些原因不能访问一些网站,他想把这个网站上的工作委托给秘书,但是他又不想提供账户.密码.此时可以使用shiro的 RunAs 功能. RunAs:允许一个用户假装为另一个用户(如果获得了允许)的身份进行访问. 注意,本章代码基于<第十六章 综合实例>,详细的数据模型及基本流程见该章. 2.表及数据…