shiro介绍、配置以及简单测试

shiro
Apache Shiro是一个强大且易用的Java安全框架,轻量级、简单易上手,功能强大
Spring security:重量级安全框架,复杂不易上手,功能更强,两者控制权限的粒度不同四大基石:身份验证(Authentication)、授权(Authorization)、密码学(Cryptography)、会话管理(SessionManagement)RBAC(Role-BaseAccessController):基于角色的访问控制,用户通过角色与权限进行关联
步骤一:导包

<!--shiro的核心包-->
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-core</artifactId>
    <version>1.4.0</version>
</dependency>
<!--日志包-->
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

也可以导入shiro-all包,既可以所有关于shiro的包都可以使用
步骤二:配置shiro.ini文件

# -----------------------------------------------------------------------------
# 这个文件中就是咱们的:用户,角色,权限,资源等
# users:代表下面的都是用户
#   root:用户名  123456:密码  admin:角色
# -----------------------------------------------------------------------------
[users]
root = 123456, admin
guest = guest, guest
gu = 123456, it
# -----------------------------------------------------------------------------
# roles:角色
#  admin = * admin角色可以做任何事
#  guest = employee:*  guert角色可以做员工可以做的任何事
#  it = employee:save :it部可以添加员工
# -----------------------------------------------------------------------------
[roles]
admin = *
guest = employee:*
it = employee:save

步骤三:测试

//获取权限工厂
IniSecurityManagerFactory factory = new IniSecurityManagerFactory("classpath:shiro.ini");
//获取权限管理器,所有功能都在权限管理器中
SecurityManager manager = factory.createInstance();
//将权限管理器交给工具管理类,工具类可以直接实现它相应的功能
SecurityUtils.setSecurityManager(manager);
//获取当前用户
Subject subject = SecurityUtils.getSubject();
//判断用户是否登录
System.out.println("登录:"+subject.isAuthenticated());
//如果没有登录,就让它登录
if(!subject.isAuthenticated()){
    //获取令牌
    UsernamePasswordToken token = new UsernamePasswordToken("root", "123456");
    //登录
    subject.login(token);
}
System.out.println("登录:"+subject.isAuthenticated());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值