shiro第二天——角色和权限验证(编程式授权)

目录结构:

shiro_role.ini文件——为用户分配角色

[users]
java1234=123456,role1,role2
jack=123,role
测试角色代码:

1、hasRole方法,返回值为boolean类型(判断当前用户是否有一个角色);

2、hasRoles方法,返回值为boolean数组(判断当前用户是否有多个角色,一个角色对应数组中的一个值);

3、hasAllRole方法,返回值为boolean类型(判断当前用户是否有全部角色,返回值为true表示拥有全部角色,否则为所有角色不全有)。

4、还有checkRole系列的三个方法,与hasRole系列不同的是,checkRole系列的话无返回值,若没有当前角色则抛出异常。

package com.java.shiro;



import java.util.ArrayList;
import java.util.List;

import org.apache.shiro.subject.Subject;
import org.junit.Test;

import com.java.shiro.util.ShiroUtil;

public class RoleTest {
	
	@Test
	public void test() {
		Subject currentUser = ShiroUtil.login("classpath:shiro_role", "java1234", "123456");
		List list = new ArrayList();
		list.add("role1");
		list.add("role2");
		//		System.out.println(currentUser.hasRole("role3")?"当前用户拥有role1角色":"当前用户没有role1角色");
//		boolean[] hasroles = currentUser.hasRoles(list);
//		for (boolean b : hasroles) {
//			System.out.println(b?"当前用户拥有这个角色":"当前用户没有这个角色");
//		}
		currentUser.hasAllRoles(list);
		System.out.println(currentUser.hasAllRoles(list)?"当前用户拥有role1,role2角色":"当前用户不全有role1,role2角色");
		currentUser.logout();
	}
}


shiro_permission.ini文件

[users]
java1234=123456,role1,role2
jack=123,role
[roles]
role1=user:select
role2=user:add,user:update,user:delete


测试权限代码:

1、isPermitted方法,返回值类型为boolean(判断当前用户是否拥有一个权限)

2、isPermitteds方法,返回值类型为boolean数组(判断当前用户是否有多个权限,一个权限对应数组的一个元素)

3、isAllPermitted方法,返回值类型为boolean(判断当前用户是否拥有全部权限,true则为拥有所有权限,否则为不全有全部权限)

package com.java.shiro;

import org.apache.shiro.subject.Subject;
import org.junit.Test;

import com.java.shiro.util.ShiroUtil;

public class PermissionTest {

	@Test
	public void testIsPermitted() {
		Subject  currentUser = ShiroUtil.login("classpath:shiro_permission.ini", "java1234", "123456");
//		System.out.println(currentUser.isPermitted("user:select")?"当前用户有这个权限":"当前用户没有这个权限");
		boolean[] results = currentUser.isPermitted("user:select","user:update","user:delete");
		System.out.println(results[0]?"当前用户有这个权限":"当前用户没有这个权限");
		System.out.println(results[1]?"当前用户有这个权限":"当前用户没有这个权限");
		System.out.println(results[2]?"当前用户有这个权限":"当前用户没有这个权限");
	}
}

pom.xml文件


	4.0.0
	com.java.shrio
	Shrio01
	0.0.1-SNAPSHOT
	Shrio01
	Shrio01

	
		
		
			org.apache.shiro
			shiro-core
			1.3.2
		
		
		
			org.slf4j
			slf4j-log4j12
			1.7.25
		
		
		
		
		
			com.mchange
			c3p0
			0.9.5.2
		
		
			commons-logging
			commons-logging
			1.2
		
		
		
			mysql
			mysql-connector-java
			5.1.45
		
		
		
			junit
			junit
			4.12
			test
		
	



你可能感兴趣的:(shrio)