Apache Shiro 是Java的一个安全框架,
可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等。
目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了。
摘自w3cschool:https://www.w3cschool.cn/shiro/co4m1if2.html
项目简介:项目实现了shiro基本的功能,如 认证、授权、会话管理、缓存等项目结构如下:
流程图如下
效果展示如下:
认证授权 首先:使用A浏览器登陆一个未授权的页面,会跳转到登陆页面访问页面http://localhost:8088/one:
自动跳转到登陆页面:
填写正确的用户名密码后会登陆到首页
登陆成功页面
登陆成功后再访问其他页面可以正常访问:
使用B浏览器访问会需要再次登陆
B浏览器登陆成功后可以正常访问
使用浏览器B登陆后,之前A浏览器登陆的状态失效,再次访问A需要再次登陆,例如之前A浏览器登陆的页面 http://localhost:8088/three,刷新后会回到登陆页面A浏览器之前的状态:
刷新后:
鉴权(不同的用户拥有页面的权限不一样): 切换用户登陆
访问授权的页面
访问此用户未授权的页面
访客权限(不需要登陆就可以访问页面)首先退出登陆,访问不用鉴权的页面
会话管理、登陆用户信息缓存 登陆用户认证成功后,将用户信息放入shiro的session中,随时可以获取用户信息 代码详见本人github:https://github.com/chenping-1993/shiro-example