Loading

Shiro(三) 权限管理 假数据

角色本质上就是一组权限的集合 起了一个别名。


 

 


 

1.默认不支持连接数据库 第一个demo还使用假数据

ini配置文件信息,模拟数据
[users] zhangsan
=123456,admin lisi=123456,admin lilei=123456,admin hanmm=123456,superadmin [roles] admin=user:select,guru:select superadmin=user:*,guru:*
public void test3(){
            /**
             * 认证流程
             *
             * 1.读取配置文件
             */
            IniSecurityManagerFactory factory = new IniSecurityManagerFactory("classpath:datasources.ini");
            SecurityManager securityManager = factory.getInstance();

            /**
             * 2.将安全管理器 赋值 工具类
             */
            SecurityUtils.setSecurityManager(securityManager);
            /**
             * 3.获取页面输入的账号密码 封装为token
             */
            UsernamePasswordToken token = new UsernamePasswordToken(username, password);
            /**
             * 4.获取Subject
             */
            Subject subject = SecurityUtils.getSubject();
            /**
             * 5.登录
             */
            try {
                subject.login(token);
                System.out.println("登录成功");
            }catch (Exception e){
                System.out.println("登录失败");
            }

/**
             * 判断是否登录成功 如果成功就可以查看用户有没有添加用户 和 删除用户 以及 查看用户的权限
             *
             * 查看用户 有没有 普通管理员的角色
             */
            if(subject.isAuthenticated()){
                /**
                 * 代码式授权 通过方法校验用户有没有某个权限
                 * 标签式
                 * 注解式
                 */

                /**
                 * 有没有查询用户权限
                 */
                boolean permitted = subject.isPermitted("user:select");
                System.out.println(permitted);
                /**
                 * 有没有 普通管理员的角色
                 */
                boolean admin = subject.isPermitted("admin");
                System.out.println(admin);

            }

        }

 

posted @ 2019-06-27 21:21  mikemhm  阅读(315)  评论(1编辑  收藏  举报