Shiro最佳实践(八)Spring集成与Redis
终于到这一篇了,也计划用Redis集成去存储用户会话实现分布式session管理为重点实现,在整合过程中个人严格遵循所有技术均采用比较新的版本,所以在此过程中废了相当大的劲儿,比如使用的Spring5的XML配置版,Spring-data-redis-2.0版本及lettuce5.1版本替代jedis实现等,所以本例中关键技术版本信息如下: shiro 1.4.1 spring 5.0.4 spring-data-redis 2.0.5 jedis 2.9.1 lettuce 5.1.2 虽然在实践过程中较为费劲,但整理出来的这些技术版本相对比较新,可以说未来的几年肯定不会过时,然而这些东西都是作为丰富自己的知识储备,真正使用时肯定会基于SpringBoot最新版再去集成的,但是既然要弄必然是做到在个人能力范围的最优。 功能点包括自定义登录过滤器(自定义form表单、记住我、验证码、错误提...
文章分类:后端一部分 开源项目 Apache Shiro
Apache ShiroShiro最佳实践(七)Spring集成与EhCache
就笔者现在而言,深入与Spring集成才是最终的方向,同时将常用的一系列授权相关功能给做到期望的程度,所以在于spring集成时考虑了实现以下功能点: 1、登录/退出; 登录支持自定义登录/退出,验证码支持(本例中验证码只是模拟,并未使用图片),记住我,登录失败错误提示等。 2、权限控制; 权限功能模拟从数据库中获取,权限控制及未授权页面显示; 3、用户授权缓存; 集成EhCache实现用户授权信息缓存; 自定义认证Realm package cn.chendd.shiro.examples.commponent; import ... /** * @author chendd * @date 2019/6/15 1:22 * 自定义认证实现 */ public class EncryptionRealmEhCache extends AuthorizingRealm implements...
文章分类:后端一部分 开源项目 Apache Shiro
Apache ShiroShiro最佳实践(六)Web项目示例
本篇示例是从官网示例代码中整理而来的,仅作为熟悉了解Shiro用,将页面的英文的文字描述翻译成中文,主要是包含用户登录、退出、角色等的功能及一些JSP页面的标签使用方法,比较简单。...
文章分类:后端一部分 开源项目 Apache Shiro
Apache ShiroShiro最佳实践(五)自定义认证的盐值加密
也许你有注意到了前面几篇文章的用户认证并未提及用户密码的加密方式,均是以明文的方式存储,然而实际上用户密码的存储必然不是明文存储的,这就是本文要描述的重点内容,实际上我们可以通过在ini配置文件中指定用户密码的加盐方式,然后与存储的用户密码密文进行对比验证,如果验证不一致均为失败,也可以在自定义认证实现中自行对密码加密校验,所以一个简单的加密验证方式如下(部分代码): package cn.chendd.shiro.custom; import ... /** * 自定义登录认证实现,示例使用不再继承IniRealm,省去一个ini的配置文件 * * @author chendd */ public class LoginEncryptionRealm extends IniRealm { Logger logger = LoggerFactory.getLogger...
文章分类:后端一部分 开源项目 Apache Shiro
Apache ShiroShiro最佳实践(四)基于ini配置文件的自定义认证
本文所谓的基于ini配置文件的自定义认证是从ini文件中定义用户账户及角色权限信息,通过自己实现Realm的方式进行登录授权,比较简单,参考具体如下: 配置文件 #按用户名与密码登录 [users] chendd=www.chendd.cn,admin,manager [roles] admin=* manager="user:insert,update,delete","concat:*" 自定义授权 package cn.chendd.shiro.custom; import ...; /** * @author chendd * 自定义登录认证实现 */ public class LoginRealm extends IniRealm { Logger logger = LoggerFactory.getLogger(this.getClass())...
文章分类:后端一部分 开源项目 Apache Shiro
Apache ShiroShiro最佳实践(三)基于ini配置文件认证
其实在Shiro的多种认证方式中还包含有JdbcRealm的方式,其实现是根据username从数据库中查询用户密码信息、角色信息、权限信息,包括有用户密码的盐值加密,具体实现这里将不再给出了,需要提供DataSource、数据库表、数据等信息。 本篇文章实现使用ini类型的配置文件实现一个简单授权认证,所谓的ini类型文件我们也常有见到,如eclipse.ini、my.ini等,它是一种可按分组读取的键值对文件,比如shiro的用户账户信息约定采用user.前缀命名,那么在ini文件中则无需遵循,直接定义一个[user]组即可,在这个组内的参数可以根据组为前缀获取。 本篇文章将出多个认证的实现,所以将代码进行了抽象,保留了Realm部分的自定义实现,参考如下: 代码参考 package cn.chendd.shiro.examples.login; import ... public ...
文章分类:后端一部分 开源项目 Apache Shiro
Apache ShiroShiro最佳实践(二)基于properties配置文件认证
用户认证主要是对用户的有效性进行验证,将含有用户、角色、权限信息等参数进行验证,本篇文章将带你一起走起来一个用户授权认证的Hello程序,Shiro认证包含有很多种方式,本篇文章采用读取Properties文件参数的方式来向你展示一个Shiro简单授权的过程,包含用户登录、角色、权限验证这些,详见下文。 首先说一下本文这种认证方式为普通Java类的项目使用,通过在Properties文件中配置授权信息来实现,参见org.apache.shiro.realm.text.PropertiesRealm类,参见使用方式截图如下: 参数配置 #定义用户信息及角色,分别是用户名,密码,角色 user.admin = admin123 , admin user.chendd = chendd123 , manager user.tt = tt123 , tester #定义角色权限 role.mana...
文章分类:后端一部分 开源项目 Apache Shiro
Apache ShiroShiro最佳实践(一)了解Shiro
本批次系列教程的主题是介绍Shiro的学习和实践,笔者根据自身的实战经验结合粗浅掌握的深度总结而来。纸上来的终觉浅,绝知此事要躬行,前后穿插着花费了两个多月的时间吧,加之工作较忙时断时续的进行着,坚持到现在总算是可以写出个七八篇文章了,开篇总结一下,它不失为一个不错的知识储备。在学习的过程中都是通过观看视频教程的方式,先后看了两个版本吧,再结合自身情况将一些技术点整理汇总,最后应用起来。 首先说一嘴Shiro是一个安全认证框架(权限管理),在之前接触的一些项目中它们都是有自己的权限管理,使用角色、菜单、用户经典的三分方式,本站也是如此,菜单与功能合并,提供根据菜单地址过滤的实现(记得对于路径变量使用的完全匹配与正则匹配的方式),一句话说,本站所有的权限控制较为严格,但本站的实现是基于角色管理、菜单管理这些功能模块来的,目前准备着手的新版博客系统采用的新一轮的技术栈去实现,所以准备采用Shi...
文章分类:后端一部分 开源项目 Apache Shiro
Apache Shiro运营时间: 天
用户数量: 人
文章数量: 篇
评论数量: 条
点赞个数: 个
最后更新: