shiro入门

Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密。 以下是你可以用 Apache Shiro所做的事情:

      1)验证用户

      2)对用户执行访问控制,如:  判断用户是否拥有角色admin。 判断用户是否拥有访问的权限

     3) 在任何环境下使用 Session API。例如CS程序。

      4)可以使用多个用户数据源。例如一个是oracle用户库,另外一个是mysql用户库。 

     5)单点登录(SSO)功能。

     6)“Remember Me”服务 ,类似购物车的功能,shiro官方建议开启。

 

  subject:主体,可以简单理解为用户

  Authenticator:身份认证,可以简单理解为判断是否登录过

  Authorizer:授权,可以简单理解为判断是否权限访问资源

  SessionManager:创建和管理用户session。通过设置这个管理器,shiro可以在任何环境下使用session。

  .CacheManager:缓存管理器,可以减少不必要的后台访问。提高应用效率,增加用户体验。

  Cryptography:Shiro的api大幅度简化java api中繁琐的密码加密

  Realms:程序与安全数据的桥梁

 

4、第一个例子

   首先先创建一个工程,加包

    

 

   1)写一个user-realms.ini文件

    

[users]

#账号及密码

zhangsan=111

lishi=111

 2)写一个测试类Test.java

public static void main(String[] args) {

// 创建securityManager工厂,通过ini配置文件创建securityManager工厂

   Factory<SecurityManager> factory = new IniSecurityManagerFactory(

"classpath:user-realm.ini");

   // 创建SecurityManager

   SecurityManager securityManager=factory.getInstance();

   //将securityManager设置当前的运行环境中

   SecurityUtils.setSecurityManager(securityManager);

   // 从SecurityUtils里边创建一个subject

   Subject subject=SecurityUtils.getSubject();

   //// 在认证提交前准备token(令牌)

   UsernamePasswordToken token=new UsernamePasswordToken("zhangsan", "111");

   try{

   // 执行认证提交

   subject.login(token);

   }catch(Exception e){

   e.printStackTrace();

   

   }

   //是否认证通过

   boolean flag= subject.isAuthenticated();

   System.out.println("flag="+flag);

 

}

 

posted @ 2017-02-15 11:55  萍水陌客缘相逢  阅读(128)  评论(0)    收藏  举报