您的位置:首页 > 其它

shiro入门demo

2017-08-31 15:38 393 查看
作为企业常用的安全框架,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、运行单元测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: