shiro框架---认证
来源:互联网 发布:游戏推广联盟源码 编辑:程序博客网 时间:2024/05/23 21:18
和大家分享一下基础的shiro框架---认证:
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。
今天就是说一下shiro的简单验证登录的功能:
首先得引入依赖:
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.3.2</version>
</dependency>
1.新建一个shiro.ini(注意:我这个写的是一个死文件,就是定义一些用户名和密码,进攻初学者理解shiro)
然后在里面写上一 用户名=密码 的格式:
[users]
admin=123
test=123456 注意,users必须是users,别随便定义,然后 我这里有两个用户名和密码,其中admin的密码就是123.
然后我们就可以用shiro来测试一下验证登录:
1.读取配置文件shiro.ini获取到(安全管理器)SecurityManager工厂
Factory<SecurityManager> factory=new iniSecurityManagerFactory("classpath:shiro.ini");
2.通过工厂获取SecurityManager
SecurityManager securityManager=factory.getInstance();
3.将安全管理器加入到当前的认证环境中
SecurityUtils.setSecurityManager(securityManager);
4.得到subject
Subject subject=SecurityUtils.getSubject();
//创建令牌,也就是得到你需要验证的帐号或密码:
AuthenticationToken token=new UsernamePassword("admin","123"); 这个是我传过来的账户和密码
//验证:
subject.login(token);
boolean isAuthenticated=subject.isAuthenticated();
sysotem.out.println("认证:"+isAuthenticated);
返回true,你就登录成功了,如过你输入错误的账户或密码,他可能会报错,这时候你需要在 subject.login(token) try一下,这里我就不try了。
2.你也可以自己写一个,一般是自己写一个,上面只是仅供娱乐测试,
下面,自己定义一个myrealm类,继承AuthorizingRealm
重写两个方法:
doGetAuthorizationInfo(授权)
doGetAuthenticationInfo(认证)
今天主要说的是 doGetAuthenticationInfo(认证)这个方法:在这个方法里面调用dao方法,然后将用户名和密码存进AuthentiacationInfo里面,这也是你需要返回的,下面上代码:
//认证
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
// TODO Auto-generated method stub
UsernamePasswordToken token2=(UsernamePasswordToken) token;
String uname=token2.getUsername();
System.out.println("输入的用户名"+uname); //这个是你输入的用户名
//根据名字查询:
String pwd=new UserDao().search("admin");
AuthenticationInfo authenticationInfo=new SimpleAuthenticationInfo(uname,pwd,""); //最后这个可以为空,但当你有多个myrealm文件时就不能为空了,就需要写上this.getName();
return authenticationInfo;
}
然后你再写一个shiro-myrealm.ini文件,读取到你所写的myrealm类;下面马代码:
myRealm=com.shiro.MyRealm (这个是你刚刚所写的类的全限名,至于myRealm你随便定义就好)
securityManager.realms=$myRealm
然后进行测试,测试代码和上面一样,但是读取 shiro-realm.ini 文件
1.读取配置文件shiro.ini获取到(安全管理器)SecurityManager工厂
Factory<SecurityManager> factory=new iniSecurityManagerFactory("classpath:shiro-myreaml.ini");
2.通过工厂获取SecurityManager
SecurityManager securityManager=factory.getInstance();
3.将安全管理器加入到当前的认证环境中
SecurityUtils.setSecurityManager(securityManager);
4.得到subject
Subject subject=SecurityUtils.getSubject();
//创建令牌,也就是得到你需要验证的帐号或密码:
AuthenticationToken token=new UsernamePassword("admin","123"); 这个是我传过来的账户和密码
//验证:
subject.login(token);
boolean isAuthenticated=subject.isAuthenticated();
sysotem.out.println("认证:"+isAuthenticated);
返回true,你就登录成功了,如过你输入错误的账户或密码,他可能会报错,这时候你需要在 subject.login(token) try一下,这里我就不try了。
好了,这些就是shiro最最基础的验证,希望对初学者有用,也记录一下自己所整理的shiro,明天再分享一下 shiro的授权的底层。
- shiro认证框架
- shiro框架---认证
- shiro权限框架详解04-shiro认证
- shiro框架的认证功能
- 安全认证框架-Apache Shiro研究心得
- 安全认证框架-Apache Shiro研究心得
- 安全认证框架-Apache Shiro研究心得
- 安全认证框架-apache shiro研究心得
- Shiro开发框架,固定信息Realm认证。
- 浅谈shiro权限框架之认证过程
- AdminEAP框架-集成Shiro安全认证
- Shiro框架身份认证(二)
- shiro框架认证方法的流程
- Shiro 框架详解之身份认证-2
- 安全认证框架Shiro (二)- shiro过滤器工作原理
- shiro认证
- shiro认证
- shiro认证
- 扫描全国的ip并识别摄像头
- Flag
- javascript之checkbox全选反选功能实现
- RocketMQ原理(1)——服务端组件介绍
- 学习记录9
- shiro框架---认证
- 辩证法中包括一个关系、两大特征、三大规律、四种方法、五对范畴
- unity 位置 管理
- 2017.11.16考试总结
- Hive提示警告SSL
- 更改keyspace复制策略(九)
- 1153: sum
- Redhat 7 安装 MySQL 5.7.10, 安装JDK 1.7, 安装Tomcat 7.0 配置web服务器
- 立方尾不变