Shiro
程序猴jwang
编码辛酸泪,谁解其中味
展开
-
Shiro入门(一)Shiro简介
前言 本章学习Shiro安全框架的基本概念方法1.概念Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。2.为什么要学习Shiro?在Shiro之前,已经出现了Spring Security这种安全框架...原创 2019-05-07 21:33:54 · 326 阅读 · 0 评论 -
Shiro入门(二)Shiro登录认证
前言 本章讲解使用Shiro实现登陆验证方法1.概念Authentication,验证用户是否合法,说白了就是登陆。需要提交用户的身份和凭证给shiro,简单点来说就是用户名和密码。Principals:用户的身份信息,是Subjec的标识属性。能够唯一标识Subjcet。如电话号码、电子邮箱,身份证号等。Credentials:凭证,是只被Subjec...原创 2019-05-08 20:08:51 · 374 阅读 · 0 评论 -
Shiro入门(三)Shiro异常和JdbcRealm
前言 本章讲解Shiro的异常和JdbcRealm的相关知识方法1.回顾在之前,我们完成了shiro的登陆验证,不知道大家有没有试过写错密码或者用户名会出现什么情况?是会出现诸如“用户登陆失败!”的字眼吗?显然不是的!!他将会抛出异常。还有,我们是通过在shiro配置文件中配置users来进行用户的认证,那么大多数情况下,我们都是在数据库中进行比对,验证登录。...原创 2019-05-09 21:59:21 · 383 阅读 · 0 评论 -
Shiro入门(四)Shiro登录验证源码及策略
前言 本章讲解Shiro登录验证的源码剖析以及登录验证策略方法一、Shiro登陆验证源码解析1.使用Subject的login方法验证token2.实际上Subject类仅仅是一个接口,他通过实现类DelegatingSubject将token委托给SecurityManager来完成验证3.而SecurityManager作为“心脏”接口,有很多的实现...原创 2019-05-10 21:25:38 · 591 阅读 · 0 评论 -
Shiro入门(五)Shiro自定义Realm和加密算法
前言 本章讲解shiro自定义的realm和它的加密算法方法1.概念通过前面的讲解,我已经带入了自定义Realm的相关概念。那么为什么要自定义realm呢?显而易见,我们在数据库中创建的users表和它的字段受限于shiro自己的jdbcRealm,所以通常情况下我们需要使用自己的表,跟着必须使用自定义realm。再者,在用户表中,密码字段的值是一个敏感的存在。我们需...原创 2019-05-11 10:34:58 · 2155 阅读 · 1 评论 -
Shiro入门(六)Shiro授权
前言 本章讲解Shiro授权的相关知识方法1.概念Authorization:授权,也就是授予用户访问某些资源的权限。前提在于需要用户通过登录验证才可以进行授权。权限(permit):表示某些功能,如按钮的显示,菜单的访问,数据的CRUD角色(role): 权限的集合,比如管理员角色,其拥有访问系统全部菜单的权限2.Shiro中用户的授权流程3...原创 2019-05-11 16:03:40 · 229 阅读 · 0 评论 -
Shiro入门(七)自定义Realm的授权
前言 本章学习自定义Realm的授权方式方法1.概念1)关于授权流程的源码剖析,希望读者自行根据登陆验证的模式进行查阅2)关于JdbcRealm的授权方式,希望读者自行编写由于JdbcRealm的授权方式受限于表,一般情况下我们都使用自定义的realm来进行授权操作。2.编码实现1)编写shiro.ini文件如下[main]myJdbcRealm ...原创 2019-05-11 18:22:45 · 229 阅读 · 0 评论 -
Shiro进阶(一)Shiro整合SSH之登录认证
前言 本章讲解Shiro整合SSH的步骤方法1.概念之前我们讲了Shiro的认证和授权,那么一般而言我们都是在web条件下进行的,所以我们来聊一下Shiro整合SSH的关键步骤。这里的SSH是我之前将SMS时的代码,这部分的整合代码我就略过了。有兴趣的可以翻翻我前面SSH框架的博客。项目结构:2.关键步骤1)引入相关jar由于是和spring进行整合,...原创 2019-05-12 19:19:15 · 477 阅读 · 0 评论 -
Shiro进阶(二)Shiro整合SSH之授权
前言 本章讲解Shiro整合SSH时授权的相关知识方法1.准备工作我们将使用自定义的realm来进行授权的管理,那么数据库表和实体类就需要自己来搭建了,我这里已经准备好了!除了之前的用户表之外,我们还需要配置如下两个表,用户-角色表和角色-权限表编写对应的实体类:UserRoles.java和RolesPers.java编写好通过用户名获取角色信息和...原创 2019-05-12 23:22:21 · 470 阅读 · 0 评论 -
Shiro进阶(三)Shiro之缓存和会话管理
前言 本章讲解shiro中缓存和会话的管理方法1.概念在之前的例子中我们发现,我们每一次访问需要一定权限的url是,程序将自动的去数据库中查询所需要的角色权限信息,一旦我们的菜单和按钮上写入的控制太多,那么将对应查询很多次数据库。上面显示,我们每次访问需要权限的页面都需要去数据库查询相应的角色和权限。为了避免上面的问题,我们可以配置shiro的缓存。2.s...原创 2019-05-13 20:38:58 · 1519 阅读 · 0 评论 -
Shiro进阶(四)Shiro之RememberMe
前言 本章讲解一下Shiro的记住我的功能方法1.概念首先要澄清一点的是,这里的记住我并不是记住用户名和密码。shiro的记住我是一种基于cookie实现的方式,特定的页面在关掉浏览器后(session消失)也可以进行访问的功能!2.实现步骤1)前台登录页面修改如果需要记住我的功能,那么前台页面需要一个checkbox多选框来让用户进行勾选。这里我就不...原创 2019-05-13 21:27:18 · 6292 阅读 · 1 评论