• 4、Shiro之IniRealm以及用户登录认证,角色认证,权限认证


    1、我们在项目test文件夹下面新建resourse文件夹并将她设置为资源文件夹:

    2、在resourse文件夹下面新建user.ini文件

    user.ini文件里面声明一个用户:

    先写一个用户标签[user]

    然后添加一个用户:houru密码:miyue

    认证测试:

    新建一个测试类:

    测试类代码:

    package com.shiro.shiroframe;
    
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.authc.UsernamePasswordToken;
    import org.apache.shiro.mgt.DefaultSecurityManager;
    import org.apache.shiro.realm.text.IniRealm;
    import org.apache.shiro.subject.Subject;
    import org.junit.jupiter.api.Test;
    
    public class IniRelamTest {
    @Test
        public void InirelamTest(){
        IniRealm iniRealm=new IniRealm("classpath:user.ini");
        DefaultSecurityManager defaultSecurityManager=new DefaultSecurityManager();
        defaultSecurityManager.setRealm(iniRealm);
        SecurityUtils.setSecurityManager(defaultSecurityManager);
        Subject subject=SecurityUtils.getSubject();
        UsernamePasswordToken usernamePasswordToken=new UsernamePasswordToken("houru","miyue");
        subject.login(usernamePasswordToken);
        System.err.println(subject.isAuthenticated());
    }
    }

    注意,上面的一切操作只不过是把用户信息存在一个资源文件里,然后使用IniRealm读取,这样理解就很简单

     授权测试:

    首先修改ini文件:

     此时java代码追加角色验证和权限验证:

        //用户角色验证
        subject.checkRole("admin");
        //用户权限验证
        subject.checkPermission("user:delete");

    如果验证通过,代码执行不报错。否则报错

  • 相关阅读:
    Vue.js实现的计算器功能完整示例
    vue实现简易计算器
    Vuex中mutations与actions的区别详解
    两个子组件之间的传值
    JS操作元素节点(非常详细)
    js包装类
    Vue Router 的params和query传参的使用和区别(详尽)
    初步了解生命周期
    简单介绍一下Progressive Web App(PWA)
    webpack学习笔记(阮一峰教程demo)
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/11024433.html
Copyright © 2020-2023  润新知