shrio入门

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能:
认证 - 用户身份识别,常被称为用户“登录”;
会话管理 - 每用户相关的时间敏感的状态。
授权 - 访问控制;
密码加密 - 保护或隐藏数据防止被偷窥;
对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。并且相对于其他安全框架,Shiro要简单的多。

Shiro的三个核心组件:Subject, SecurityManager 和 Realms

Application Code --> Subject -->Shiro SecurityManager --> Realm

Subject:即“当前操作用户”。

但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。

它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。

Realm: Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。

也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。

示例1:使用Shiro对用户信息进行验证

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;

public class ShiroTest {
public static void main(String[] args) {
//1.
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");

//2.
SecurityManager securityManager = factory.getInstance();

//3.
SecurityUtils.setSecurityManager(securityManager);

//4.
Subject currentUser = SecurityUtils.getSubject();

if(currentUser.isAuthenticated())
{
System.out.println("已登录,SESSION: " + currentUser.getSession());
}

UsernamePasswordToken token = new UsernamePasswordToken("zwx","zavens1");

try {
currentUser.login(token);
} catch (Exception e) {
System.out.println("验证没有通过!");
}

if(currentUser.isAuthenticated())
{
System.out.println("已登录,SESSION: " + currentUser.getSession());
}

}
}


shiro.ini

[users]
zwx=zavens
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值