shiro入门demo

作为企业常用的安全框架,shiro以使用简单赢得了大量拥簇,下面提供一个简单的入门案例,供大家参考。

1、新建java项目,导入jar包,build-path添加junit lib:


2、新增文件夹config,以及log4j属性文件:

log4j.rootLogger=debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m %n

3、在config中新增shiro-first.ini文件,内容如下:

#对用户信息进行配置
[users]
#用户名、密码
zhangsan=111111
lisi=22222

4、新建认证测试类:

package com.js.authentication;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
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;
import org.junit.Test;

/**
 * 认证测试
 * @author jiangs
 *
 */
public class AuthenticationTest {
	@Test
	//用户登录和测试
	public void testLoginAndLogout() {
		//创建securityManager工厂
		Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro-first.ini");
		
		//创建SecurityManager
		SecurityManager securityManager = factory.getInstance();
		
		//将securityManager设置到当前的运行环境中
		SecurityUtils.setSecurityManager(securityManager);
		
		//模拟一个subject,从SecurityUtils来创建
		Subject subject = SecurityUtils.getSubject();
		
		//在认证提交前需要准备token(令牌)
		UsernamePasswordToken token = new UsernamePasswordToken("zhangsanddd","111111");
		
		//执行认证的提交subject.login()
		try {
			subject.login(token);
		} catch (AuthenticationException e) {
			e.printStackTrace();
		}
		
		//是否认证通过
		boolean isAuthenticated = subject.isAuthenticated();
		
		System.out.println("是否认证通过:"+isAuthenticated);
		
		//退出操作
		subject.logout();
		
		//是否认证通过
		isAuthenticated = subject.isAuthenticated();
				
		System.out.println("是否认证通过:"+isAuthenticated);
	}
}

5、运行单元测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值