All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yanyun.auth.util.AuthUtils Maven / Gradle / Ivy

There is a newer version: 1.5.0
Show newest version
package com.yanyun.auth.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.util.StringUtils;

import java.util.*;

/**
 * 为了便于权限的封装与解析,提供工具类
 */
public class AuthUtils {

    /**
     * 用于将角色信息封装为合法的JSON字符串信息,会自动添加roles头信息
     * @param auth 参数为可变字符串,用于接收多个权限信息,权限不需要ROLE开头
     * @return
     */
    public static String toAuthStr(String... auth){
        List auths = Arrays.asList(auth);
        Map authMap = new HashMap();
        authMap.put("roles",auths);
        return JSON.toJSONString(authMap);
    }

    /**
     * 用于将角色信息封装为合法的JSON字符串信息,会自动添加roles头信息
     * @param auths 接收list集合,泛型为String类型 权限不需要ROLE开头
     * @return
     */
    public static String toAuthStr(List auths){
        Map authMap = new HashMap();
        authMap.put("roles",auths);
        return JSON.toJSONString(authMap);
    }

    /**
     * 用于将角色信息封装为合法的JSON字符串信息,会自动添加roles头信息
     * @param auths 接收set集合,泛型为String类型 权限不需要ROLE开头
     * @return
     */
    public static String toAuthStr(Set auths){
        Map authMap = new HashMap();
        authMap.put("roles",auths);
        return JSON.toJSONString(authMap);
    }

    /**
     * 从字符串中解析角色信息为List集合,泛型为list
     * @param auths
     * @return
     */
    public static List getListAuthsFromStr(String auths){
        List roles = new ArrayList<>();
        if(!StringUtils.isEmpty(auths)){
            JSONObject jsonObject = JSON.parseObject(auths);
            if(null!=jsonObject.get("roles")){
                roles = (List) jsonObject.get("roles");
            }
        }
        return  roles;
    }

    /**
     * 从字符串中解析角色信息为List集合,泛型为set
     * @param auths
     * @return
     */
    public static Set getSetAuthsFromStr(String auths){
        return new HashSet<>(getListAuthsFromStr(auths));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy