ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 软件工程 >> 基于shiro的权限管理开发实现

基于shiro的权限管理开发实现(3/7)

来源:网络整理     时间:2016-04-22     关键词:Shiro,权限管理

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

一键root权限管理,权限管理下载,权限管理系统,shiro,shiro 权限控制,shiro权限管理系统,shiro 动态菜单 权限,shiro 权限表设计,javaweb权限管理系
[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进行认证

相关图片

相关文章