1.我们先建一个maven项目,如图:
2.在pom.xml中添加如下依赖:
<dependencies> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> </dependency> </dependencies>
3.创建一个user.ini文件,该文件保存用户基本信息和权限信息,user.ini的基本信息如下:
[users] \#提供了对用户/密码及其角色的配置,用户名=密码,角色1,角色2 root=123456,admin [roles] \#提供了角色及权限之间关系的配置,角色=权限1,权限2 admin=user:delete
4.现在正式开始编码,包括检查登陆认证、含有权限,代码如下:
package com.wkf; 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; /** * 使用内置IniRealm类读取用户 * @author wkf */ public class IniRealmTest { @Test public void testAuthentication(){ IniRealm iniRealm = new IniRealm("classpath:user.ini");//读取用户信息文件,IniRealm类:用户信息存储类 //1.构建SecurityManager环境 DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager(); defaultSecurityManager.setRealm(iniRealm); //2.主体提交认证请求 SecurityUtils.setSecurityManager(defaultSecurityManager); Subject subject = SecurityUtils.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken("root","123456"); subject.login(token);//登陆认证 System.out.println("认证结果:"+subject.isAuthenticated()); subject.checkRole("admin");//检查角色授权(必须登陆认证后才行) subject.checkPermission("user:delete");//检查角色权限 } }