码迷,mamicode.com
首页 > 其他好文 > 详细

shiro 身份验证

时间:2017-10-18 10:01:36      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:actor   cto   div   session   属性   获取   密码   user   实际应用   

 

shiro身份验证:

  参考链接:http://jinnianshilongnian.iteye.com/blog/2019547

  即在应用中证明是本人进行操作,一般通过用户名来证明

  在shiro中,用户通过提供principals(身份)和credentials(证明)给shiro,从而进行验证

  principals:身份,即主体的标识属性,可以i是任何东西,如用户名、邮箱等,唯一即可;一个主体可以有多个principals,但只有一个Primary principals,一般是用户名、密码、手机号

  credentials:证明、凭证,即只有主体知道的安全值,如密码、数字证书等

通过ini准备一些主体(实际应用中应该从数据库中获取):

[users]
draco = 615
harry = 630

 测试:模仿用户登录

  @Test
    public void testLoginAndLogout(){
        
        //创建sessionFactory,使用ini配置文件初始化
        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro-first.ini");
//创建securityManager实例
        SecurityManager securityManager = factory.getInstance();
        
        //将securityManager配置在当前运行环境中
        SecurityUtils.setSecurityManager(securityManager);
        
        //获取当前subject
        Subject currentUser = SecurityUtils.getSubject();
        
        //创建用户令牌
        UsernamePasswordToken token = new UsernamePasswordToken("draco", "615");
        
        //直接登录
        try {
            currentUser.login(token);
        } catch (UnknownAccountException uae) {
            log.debug("用户名不存在 ");
        } catch (IncorrectCredentialsException ice) {
            log.debug("密码错误 ");
        } catch (LockedAccountException lae) {
            log.debug("未知错误? ");
        }
        
        boolean authenticated = currentUser.isAuthenticated();
        log.debug("是否登陆成功:"+ authenticated);      
        
    }

 

shiro 身份验证

标签:actor   cto   div   session   属性   获取   密码   user   实际应用   

原文地址:http://www.cnblogs.com/roxy/p/7685002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!