转自:
http://www.java265.com/JavaCourse/202201/2167.html
下文笔者讲述shiro配置文件shiro.ini的简介说明,如下所示:
shiro.ini:是一个shiro的配置文件, 它通常放在classpath路径下 shiro.ini配置文件包含以下信息
main 提供了对根对象securityManager及其依赖对象的配置,通过反射创建相应的实例。 #创建对象 securityManager=org.apache.shiro.mgt.DefaultSecurityManager 1.对象名=全限定类名 相当于调用public无参构造器创建对象 2.对象名.属性名=值 相当于调用于setter方法设置常量值 3.对象名.属性名=$对象引用 相当于调用setter方法设置对象引用 users 提供了对用户/密码及其角色的配置,用户名=密码,角色1,角色2 比如:username=password,role1,role2 [users] zhangsan=123,role1,role2 wangwu=123,role1 roles 提供了角色及权限之间关系的配置,角色=权限1,权限2 比如:role1 = permission1 , permission2 [roles] role1=user:create,user:update role2=* urls 提供了对web url拦截相关的配置,url=拦截器[参数],拦截器 /index.html = authno /admin/** = auth, roles[admin],perms["permission1"]
例
//shiro.ini [users] root=888888 # 账号为root 密码:888888
例:
//java package com.java265; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.IncorrectCredentialsException; import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; /** *shiro的第一个入门案例 */ public class HelloTest { public static void main(String[] args) { //1.加载配置文件获取Factory对象 Factoryfactory=new IniSecurityManagerFactory("classpath:shiro.ini"); //2.获取SecurityManager对象 SecurityManager securityManager =factory.getInstance(); //3.将SecurityManager添加到系统 SecurityUtils.setSecurityManager(securityManager); //4.通过SecurityManager获取Subject对象 Subject subject=SecurityUtils.getSubject(); //账号密码是客户端提交的数据 AuthenticationToken token=new UsernamePasswordToken("root","888888"); //5.实现认证操作 try{ subject.login(token); System.out.println("认证成功"); }catch(UnknownAccountException e){ System.out.println("账号输入错误。,,,"); }catch (IncorrectCredentialsException e) { System.out.println("密码输入错误。。。"); } } }