Shrio的入门例子,从基础教你使用shrio
2017-11-03 17:28
766 查看
首先我们要介绍一下shrio
有关的shrio的简介请参考:
http://wiki.jikexueyuan.com/project/shiro/overview.html
然后我们就要来第一个shrio的程序了。
1. 添加依赖,使用的是Maven(如果还在用原始jar包构建项目的的读者朋友了可以考虑更换了,Maven依赖只要一个pom文件就能管理你的项目几乎所有的jar包依赖)
注意上面的依赖,缺一不可,使用maven的朋友们直接复制就好
2.加入了日志依赖,我们就不可或缺的要一个log4j.properties文件了
3. 下面我们就要简单实现用户验证的一个例子,为了简单,我们模拟数据库的两个用户写入shrio.ini中
4. 创建测试类来试试我们的shrio
好了,这样的一个小例子就完了,测试的时候,可以修改token中用户的信息,比如username为赵 密码为111(这种情况下无疑会输出验证失败,然后抛出异常信息)。
下面总结一下学习新技术的方法:
1. 敲代码
2. 测试
3. 修改一些信息或者一写参数。在测试。
4. 记住这些特征,然后思考哪些能动态控制,哪些是固定的。
5. 思考那些地方用得到这个技术。
有关的shrio的简介请参考:
http://wiki.jikexueyuan.com/project/shiro/overview.html
然后我们就要来第一个shrio的程序了。
1. 添加依赖,使用的是Maven(如果还在用原始jar包构建项目的的读者朋友了可以考虑更换了,Maven依赖只要一个pom文件就能管理你的项目几乎所有的jar包依赖)
<dependencies> <!--shrio支持测试,所以直接添加--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- commons-logging --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> <!--shrio核心包--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.0</version> </dependency> <!--下面是项目日志需要的slf4j和log4j的依赖包,没有下面的依赖,运行会曝出没有找到一些类--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> <scope>test</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies>
注意上面的依赖,缺一不可,使用maven的朋友们直接复制就好
2.加入了日志依赖,我们就不可或缺的要一个log4j.properties文件了
#config root logger log4j.rootLogger = INFO,system.out log4j.appender.system.out=org.apache.log4j.ConsoleAppender log4j.appender.system.out.layout=org.apache.log4j.PatternLayout log4j.appender.system.out.layout.ConversionPattern=MINAServer Logger-->%5p{%F:%L}-%m%n #config this Project.file logger log4j.logger.thisProject.file=INFO,thisProject.file.out log4j.appender.thisProject.file.out=org.apache.log4j.DailyRollingFileAppender log4j.appender.thisProject.file.out.File=logContentFile.log log4j.appender.thisProject.file.out.layout=org.apache.log4j.PatternLayout
3. 下面我们就要简单实现用户验证的一个例子,为了简单,我们模拟数据库的两个用户写入shrio.ini中
[users] zhang=123 wang=123
4. 创建测试类来试试我们的shrio
public class ShrioHelloWorld { @Test public void testHelloWorld(){ //1、获取SecurityManager工厂,此处使用Ini配置文件初始化SecurityManager Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini"); //2、得到SecurityManager实例 并绑定给SecurityUtils SecurityManager securityManager = factory.getInstance(); // SecurityUtils设置安全管理对象 SecurityUtils.setSecurityManager(securityManager); //3、得到Subject及创建用户名/密码身份验证Token(即用户身份/凭证) Subject subject = SecurityUtils.getSubject(); //根据虚拟用户名设置一个token UsernamePasswordToken token = new UsernamePasswordToken("wang", "123"); try { //4、登录,即身份验证,如果token的用户信息和ini文件的信息不匹配,那么就失败怕出异常。 subject.login(token); System.out.println("验证成功!!"); } catch (AuthenticationException e) { //5、身份验证失败 System.out.println("登陆验证失败"); e.printStackTrace(); } //断言用户已经登录 Assert.assertEquals(true, subject.isAuthenticated()); //6、退出 subject.logout(); } }
好了,这样的一个小例子就完了,测试的时候,可以修改token中用户的信息,比如username为赵 密码为111(这种情况下无疑会输出验证失败,然后抛出异常信息)。
下面总结一下学习新技术的方法:
1. 敲代码
2. 测试
3. 修改一些信息或者一写参数。在测试。
4. 记住这些特征,然后思考哪些能动态控制,哪些是固定的。
5. 思考那些地方用得到这个技术。
相关文章推荐
- Visual Studio 2005入门 之 GridView使用基础二 [视频]
- MS SQL入门基础:创建和使用约束
- J2EE入门视频教程第二讲——IDE使用基础技巧
- Flash Media Server 2使用入门基础http://blog.breakn.net/article.asp?id=267
- JAVA入门2--关于JOptionPane 和 JApplet一起使用的方法例子
- C#分析数据库结构,使用XSL模板自动生成代码 - 清清月儿 .NET万花筒 Asp.net技术 Asp.net教程 Asp.net源码 Asp.net基础 Asp.net控件 Asp.net入门 - CSDNBlog
- Unix操作系统基础1-Unix使用入门
- Python入门的36个例子 之 35 -> try – 一个使用的例子
- 地图入门(一):Android上使用Google Maps加标注的最最简单的例子
- PHP 正则的使用基础入门
- 使用BIOS进行键盘输入和磁盘读写01 - 零基础入门学习汇编语言75
- 使用BIOS进行键盘输入和磁盘读写02 - 零基础入门学习汇编语言76
- 使用BIOS进行键盘输入和磁盘读写02 - 零基础入门学习汇编语言76
- iText使用入门:编辑,增加,导入,水印,合并PDF的例子
- MS SQL入门基础:使用系统过程管理游标
- java基础加强--注解的入门与使用
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明
- vs2005入门 之 GridView使用基础 [视频]
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明