Shiro(学习记录一)
什么是Shiro?
Apache的强大灵活的开源安全框架
认证、授权。企业会话管理、安全加密、缓存管理
一般都是用shiro快速完成功能模块里的权限管理的开发
代码体现:
public class AuthenticationTest { //SimpleAccountRealm不支持添加权限 SimpleAccountRealm simpleAccountRealm = new SimpleAccountRealm(); //在认证之前先在Realm中添加一个用户 @Before public void addUser(){ simpleAccountRealm.addAccount("lyf","123qwe","admin","user"); } @Test public void testAuthentication(){ //认证第一步 //1.构建SecurityManager环境 DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager(); //将Realm设置到环境中 defaultSecurityManager.setRealm(simpleAccountRealm); //2.由主体来提交认证请求 //设置主体SecurityManager环境 SecurityUtils.setSecurityManager(defaultSecurityManager); //通过工具类获得主体 Subject subject = SecurityUtils.getSubject(); //获得主体之后,提交认证,即登录 //这里用UsernamePasswordToken存认证数据 UsernamePasswordToken token = new UsernamePasswordToken("lyf","123qwe"); //进行登录认证 subject.login(token); System.out.println("是否认证:" + subject.isAuthenticated()); /*//退出登录 subject.logout(); System.out.println("是否认证:" + subject.isAuthenticated());*/ //检查用户是否具备角色 // subject.checkRole("admin"); subject.checkRoles("admin","user"); } }