shiro.ini详解
shiro.ini一般放在classpath路径下,ini配置著有有4个主要的配置类
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=123456 # 账号为root 密码是123456 //java 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","123456"); //5.实现认证操作 try{ subject.login(token); System.out.println("认证成功"); }catch(UnknownAccountException e){ System.out.println("账号输入错误。,,,"); }catch (IncorrectCredentialsException e) { System.out.println("密码输入错误。。。"); } } }
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。