Shiro内置Realm - IniRealm

说明:此方法通过配置 .ini 文件进行用户、角色及权限验证

一. 创建测试类

package com.example.controller;

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.Test;

/**
 * @author :zhangbocong
 * @version :V1.0
 * @program :spring_boot_demo
 * @date :Created in  17:03
 * @description :内置IniRealm测试
 */
public class IniRealmTest {
    @Test
    public void test() {
        // 1. 创建IniRealm对象并指定验证文件路径
        IniRealm iniRealm = new IniRealm("classpath:user.ini");

        // 2. 构建SecurityManage环境,设置域
        DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
        defaultSecurityManager.setRealm(iniRealm);

        // 3. 提交主体认证请求
        SecurityUtils.setSecurityManager(defaultSecurityManager);
        Subject subject = SecurityUtils.getSubject();

        // 4. 模拟用户
        UsernamePasswordToken token = new UsernamePasswordToken("Mark","123");

        // 5. 登录
        subject.login(token);
        // 5.1 验证是否认证
        System.out.println(subject.isAuthenticated());

        // 6. 验证角色
        subject.checkRoles("admin");

        // 7. 验证权限
        subject.checkPermission("user:delete");
    }
}

二. 根据 IniRealm 配置路径创建 user.ini 文件

三. 测试