shiro简介及入门案例
Apache Shiro 是 Java 的一个安全(权限)框架。 Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境。使用Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。
Shiro 可以完成:认证、授权、加密、会话管理、与Web 集成、缓存 等。
shiro能解决什么问题?
- 认证:验证用户的身份
- 授权:对用户执行访问控制:判断用户是否被允许做某事
- 会话管理:在任何环境下使用 Session API,即使没有 Web 或EJB 容器。
- 加密:以更简洁易用的方式使用加密功能,保护或隐藏数据防止被偷窥
- Realms:聚集一个或多个用户安全数据的数据源
Shiro 的四大核心部分
- Authentication(身份验证):简称为“登录”,即证明用户是谁。
- Authorization(授权):访问控制的过程,即决定是否有权限去访问受保护的资源。
- Session Management(会话管理):管理用户特定的会话,即使在非 Web 或 EJB 应用程序。
- Cryptography(加密):通过使用加密算法保持数据安全
shiro的三个核心组件:
- Subject :正与系统进行交互的人,或某一个第三方服务。所有 Subject 实例都被绑定到(且这是必须的)一个SecurityManager 上。
- SecurityManager:Shiro 架构的心脏,用来协调内部各安全组件,管理内部组件实例,并通过它来提供安全管理的各种服务。当 Shiro 与一个 Subject 进行交互时,实质上是幕后的 SecurityManager 处理所有繁重的 Subject 安全操作。
- Realms :本质上是一个特定安全的 DAO。当配置 Shiro 时,必须指定至少一个 Realm 用来进行身份验证和/或授权。Shiro 提供了多种可用的 Realms 来获取安全相关的数据。如关系数据库(JDBC),INI 及属性文件等。可以定义自己 Realm 实现来代表自定义的数据源

案例
项目准备
-
使用idea创建一个Java项目 day64-shiro-01-hello
-
创建lib目录加入jar包 jar包下载地址

-
将jar导入项目中

-
添加快速开发的类和配置文件 源码 shiro-root-1.3.2-source-release.zip


-
环境准备完成。。。。。
测试
1 修改配置文件(全部清空换这个也行)
# 用户
[users]
# 用户名 = 密码,角色1,角色2
admin = 123456, admin
# 角色
[roles]
# 角色名 = 权限 * :所有
admin = *
2 修改Quickstart的main方法里面的代码(去掉英文注释,添加中文注释),
// 1. 创建一个SecurityManagerFactory
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
// 2. 通过SecurityManagerFactory获取一个SecurityManager实例
SecurityManager securityManager

最低0.47元/天 解锁文章
2719





