package com.hwlcn.security.util;
import com.hwlcn.security.authz.Permission;
import com.hwlcn.security.authz.permission.PermissionResolver;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Set;
public class PermissionUtils {
/**
* 根据权限的解析类解析字符串权限
* @param s
* @param permissionResolver
* @return
*/
public static Set<Permission> resolveDelimitedPermissions(String s, PermissionResolver permissionResolver) {
Set<String> permStrings = toPermissionStrings(s);
return resolvePermissions(permStrings, permissionResolver);
}
public static Set<String> toPermissionStrings(String permissionsString) {
String[] tokens = StringUtils.split(permissionsString);
if (tokens != null && tokens.length > 0) {
return new LinkedHashSet<String>(Arrays.asList(tokens));
}
return null;
}
public static Set<Permission> resolvePermissions(Collection<String> permissionStrings, PermissionResolver permissionResolver) {
Set<Permission> permissions = new LinkedHashSet<Permission>(permissionStrings.size());
for (String permissionString : permissionStrings) {
permissions.add(permissionResolver.resolvePermission(permissionString));
}
return permissions;
}
}