本篇文章主要介绍了"基于shiro的权限管理开发实现",主要涉及到Shiro,权限管理方面的内容,对于软件工程感兴趣的同学可以参考一下:
上篇博客中简单介绍了一下权限管理的原理,其中包括最主要的两部分认证和授权。这篇博客中简单介绍一下shiro的认证和授权过程。 什么是shiro?Shiro是ap...

[main]
#自定义realm
customRealm=cn.itcast.shiro.realm.CustomRealm
#将realm设置到securityManager,相当于spring中注入
securityManager.realms=$customRealm
4.创建认证代码
// 用户登录和退出
@Test
public void testCustomRealm() {
// 创建securityManager工厂,通过ini配置文件创建securityManager工厂
Factory factory = new IniSecurityManagerFactory(
"classpath:shiro-realm.ini");
// 通过工厂创建SecurityManager
SecurityManager securityManager = factory.getInstance();
// 将securityManager设置到运行环境中
SecurityUtils.setSecurityManager(securityManager);
// 创建一个Subject实例,该实例认证要使用上边创建的securityManager进行
Subject subject = SecurityUtils.getSubject();
// 创建token令牌,记录用户认证的身份和凭证即账号和密码
UsernamePasswordToken token = new UsernamePasswordToken("zhangsan",
"111111");
try {
// 用户登陆
subject.login(token);
} catch (AuthenticationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 用户认证状态
Boolean isAuthenticated = subject.isAuthenticated();
System.out.println("用户认证状态:" + isAuthenticated);
// 用户退出
subject.logout();
isAuthenticated = subject.isAuthenticated();
System.out.println("用户认证状态:" + isAuthenticated);
}
5.认证流程
(1)创建token令牌,token中有用户提交的认证信息即账号和密码
(2)执行subject.login(token),最终由securityManager通过Authenticator进行认证