• 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);
    
                }
    
            }
  • 相关阅读:
    动态创建DeepZoom
    MultiSheet Excel Output
    PL/SQL Developer设置技巧
    采购审批专题总结bob
    oracle dbms包和其他包的使用大全
    ARAuto Invoice question
    应收发票相关 脚本
    发运确认停靠站错误
    让R12直接从Form登录
    查找事物处理来源
  • 原文地址:https://www.cnblogs.com/mikemhm/p/11099717.html
Copyright © 2020-2023  润新知