1. 添加maven的 webapp java resource 等文件夹,指定文件夹地位 添加xml文件
添加依赖:shiro——all2. resources 添加 user.ini
[users] zs=123,admin lisi=123,normal [roles] admin=user:list,user:add,user:update normal=user:list3. 直接创建test类
类中写: 1) 导入user.ini配置文件 2) 创建DefaultSecurityManager安全管理器 3)获取shiro核心类:subject主体 4)获取验证token(因为是测试类,直接为token赋值) 5)使用subjec的login方法进行‘认证’,和user.ini文件验证token内容是否正确。 6)使用subjec的checkeRole 和 checkePermission 为通过认证的用户‘授权’。 7)over。 4. 代码如下:private IniRealm iniRealm=new IniRealm("classpath:user.ini");
@Test
public void test1(){ /*new一个默认安全管理器*/ DefaultSecurityManager securityManager=new DefaultSecurityManager(); /*安全管理器加载外部信息*/ securityManager.setRealm(iniRealm); /*SecurityUtils加载安全管理器*/ SecurityUtils.setSecurityManager(securityManager); /*Subject是shiro主体对象,通过创建获得它*/ Subject subject=SecurityUtils.getSubject(); /*token传递用户名和密码的域属性*/ UsernamePasswordToken token=new UsernamePasswordToken("aaa","123"); /*login方法会对token进行处理。主要在我们的自定义realm里面。现在只是测试shiro框架 * 所以没有配置realm,主要的属性都会去user.ini配置文件里面查找。此时使用“aaa”和“123” * 和user.ini不同,所以会报UnknownAccountException异常。*/ subject.login(token); /*认证通过输出这个*/ System.out.println("认证通过"); subject.checkRole("admin"); subject.checkPermission("user:list"); System.out.println("授权通过"); }