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);
} |

浙公网安备 33010602011771号