shiro 身份验证
Posted 耍流氓的兔兔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shiro 身份验证相关的知识,希望对你有一定的参考价值。
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 身份验证的主要内容,如果未能解决你的问题,请参考以下文章