zoukankan      html  css  js  c++  java
  • 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);
    
                }
    
            }
  • 相关阅读:
    Android 70道面试题汇总不再愁面试
    TOMCAT用Https替换Http的方法
    Struts2+Spring3+Hibernate3配置全过程
    javac 无效标签
    hibernate
    数据库命令行启动
    Tomcat检测程序
    SQL
    Unsupported major.minor version 49.0的错误解决
    ImportError: No module named pysqlite2
  • 原文地址:https://www.cnblogs.com/mikemhm/p/11099717.html
Copyright © 2011-2022 走看看