你的位置:首页 > 软件开发 > Java > 跟我学习shiro权限框架(第 二天)

跟我学习shiro权限框架(第 二天)

发布时间:2015-07-22 13:00:07
shiro认证入门程序shiro-first.ini通过此配置文件创建securityManager工厂。 需要修改eclipse的ini的编辑器: 入门程序代码Java代码 // 用户登陆和退出 @Test ...

shiro认证入门程序

shiro-first.ini

通过此配置文件创建securityManager工厂。

 

需要修改eclipse的ini的编辑器:  

入门程序代码

Java代码  
  1. // 用户登陆和退出  
  2.     @Test  
  3.     public void testLoginAndLogout() {  
  4.   
  5.         // 创建securityManager工厂,通过ini配置文件创建securityManager工厂  
  6.         Factory<SecurityManager> factory = new IniSecurityManagerFactory(  
  7.                 "classpath:shiro-first.ini");  
  8.           
  9.         //创建SecurityManager  
  10.         SecurityManager securityManager = factory.getInstance();  
  11.           
  12.         //将securityManager设置当前的运行环境中  
  13.         SecurityUtils.setSecurityManager(securityManager);  
  14.           
  15.         //从SecurityUtils里边创建一个subject  
  16.         Subject subject = SecurityUtils.getSubject();  
  17.           
  18.         //在认证提交前准备token(令牌)  
  19.         UsernamePasswordToken token = new UsernamePasswordToken("zhangsan", "111111");  
  20.   
  21.         try {  
  22.             //执行认证提交  
  23.             subject.login(token);  
  24.         } catch (AuthenticationException e) {  
  25.             // TODO Auto-generated catch block  
  26.             e.printStackTrace();  
  27.         }  
  28.           
  29.         //是否认证通过  
  30.         boolean isAuthenticated =  subject.isAuthenticated();  
  31.           
  32.         System.out.println("是否认证通过:" + isAuthenticated);  
  33.           
  34.         //退出操作  
  35.         subject.logout();  
  36.           
  37.         //是否认证通过  
  38.         isAuthenticated =  subject.isAuthenticated();  
  39.           
  40.         System.out.println("是否认证通过:" + isAuthenticated);  
  41.           
  42.           
  43.   
  44.     }  
  1. 1、通过ini配置文件创建securityManager  
  2. 2、调用subject.login方法主体提交认证,提交的token  
  3. 3、securityManager进行认证,securityManager最终由ModularRealmAuthenticator进行认证。  
  4. 4、ModularRealmAuthenticator调用IniRealm(给realm传入token) 去ini配置文件中查询用户信息  
  5. 5、IniRealm根据输入的token(UsernamePasswordToken)从 shiro-first.ini查询用户信息,根据账号查询用户信息(账号和密码)  
  6.     如果查询到用户信息,就给ModularRealmAuthenticator返回用户信息(账号和密码)  
  7.     如果查询不到,就给ModularRealmAuthenticator返回null  
  8. 6、ModularRealmAuthenticator接收IniRealm返回Authentication认证信息  
  9.     如果返回的认证信息是null,ModularRealmAuthenticator抛出异常(org.apache.shiro.authc.UnknownAccountException)  
  10.   
  11.     如果返回的认证信息不是null(说明inirealm找到了用户),对IniRealm返回用户密码 (在ini文件中存在)和 token中的密码 进行对比,如果不一致抛出异常(org.apache.shiro.authc.IncorrectCredentialsException)  
  1. ModularRealmAuthenticator作用进行认证,需要调用realm查询用户信息(在数据库中存在用户信息)  
  2. ModularRealmAuthenticator进行密码对比(认证过程)。  
  3.       
  4. realm:需要根据token中的身份信息去查询数据库(入门程序使用ini配置文件),如果查到用户返回认证信息,如果查询不到返回null。  

原标题:跟我学习shiro权限框架(第 二天)

关键词:Shiro

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录