Shiro框架

Shiro介绍
实现权限的几种方式:
1:运用表实现。
2:shiro框架
3:Spring secturity框架
Shiro的几种功能:
身份认证:(登录)验证用户
授 权:访问控制,就是实现权限的分配
会话管理:会话管理技术
加 密:保证数据安全使用数据加密算法。
搭建Shiro环境:
引入shiro依赖
Shiro核心类:
SecurityManager 通过Factory类来进行得到;
1:获取SecurityManager类 首先获得工厂对象
Factory factory=new IniSecurityManagerFactory(“配置文件”)
2:通过工厂对象获得SecurityManager
SecurityManager securityManager=factory.getInstance();
Subject:当前用户 通过SecurityUtils进行得到
3:通过SecurityUtils获得当前对象 首先将SecurityUtils和SecurityManager进行绑定
SecurityUtils.setSecurityManager(securityManage);
4:绑定之后获得当前用户
Subject user=SecurityUtils.getSubject();
5:利用这个类进行登录验证
UsernamePasswordToken token=new UsernamePasswordToken(“admin”,”123456)
user.login(token);此方法没有返回值类型 需要进行try/catch捕获这里就不写了。
Shiro中的jdbcRealm工具类
使用jdbcRealm工具类可以进行数据库连接,在验证用户身份时无需写sql直接进行验证
user.login(token)直接进行tryCatch
jdbcRealm工具类的配置 jdbc_realm.ini中进行配置
jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
druid数据库连接池
dataSource=com.alibaba.druid.pool.DruidDataSource
dataSource.driverClassName=com.mysql.jdbc.Driver c3p0 driverClass
dataSource.url=jdbc:mysql://localhost:3306/shirodemo c3p0 jdbcUrl
dataSource.username=root c3p0 user
dataSource.password=19930913
配置jdbcrealm
jdbcRealm.dataSource= dataSourcesecurityManager.realms= d a t a S o u r c e s e c u r i t y M a n a g e r . r e a l m s = jdbcRealm
测试类
//获得SecutityManager通过factory
Factory factory=new IniSecurityManagerFactory(“classpath:jdbc_realm.ini”);
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject user = SecurityUtils.getSubject();
UsernamePasswordToken token=new UsernamePasswordToken(“admin”,”12345”);
try {
user.login(token);
System.out.println(“登陆成功”);
} catch (AuthenticationException e) {
System.out.println(“登陆失败”);
}
用户,角色,权限之间的关系
什么是用户:用户包含两部分账号和密码
什么是角色:一组权限的集合
什么是权限:规定什么事情可以做什么事情不可以做
Shiro授权:(角色与用户写到配置文件中)这里写图片描述
Shiro授权的几种方式:
编程式、
判断用户具有哪些角色
通过user.hasRole()可以进行判断用户具有某一个角色,通过user.uesrRoles()可以判断用户具有哪些角色 传递的参数是list 返回类型是boolean
判断用户具有哪些权限
通过user.permitted()判断用户是否具有某一具体权限 判断某一用户是否同时具有多个参数user.isPermitted() 也可运用checkPermission()但是不具有返回值类型 通过try/catch
注解式、
标签式、
剩下注解和标签式日后在更。里面可以把登录封装成工具类 ,这里就不风化封装了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值