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

io.github.wslxm.springbootplus2.utils.XjAuthCacheKeyUtil Maven / Gradle / Ivy

The newest version!
package io.github.wslxm.springbootplus2.utils;

import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import io.github.wslxm.springbootplus2.core.utils.XjStringUtil;

/***
 * 接口缓存的url 处理
 * 

* 权限 key 以 缓存key 处理/获取方法 *

* @author wangsong * @mail [email protected] * @date 2021/8/25 0025 10:51 * @version 1.0.1 */ public class XjAuthCacheKeyUtil { /** * 获取缓存key(接口扫码缓存数据库数据) *

* 项目启动或更新url权限时, 需要把url 当key进行缓存,用于权限认证, 由于path参数是动态参数, 把所有 path 的参数转为 $ 符号在进行缓存 *

* @author wangsong * @param method * @param uri * @date 2021/8/25 0025 11:02 * @return java.lang.String * @version 1.0.1 */ public static String getCacheKey(String method, String uri) { String[] uriArr = uri.split("/"); StringBuffer urlStr = new StringBuffer(); for (int i = 0; i < uriArr.length; i++) { String urlParam = uriArr[i]; if (StringUtils.isNotBlank(urlParam)) { urlStr.append("{".equals(urlParam.substring(0, 1)) ? "/$" : "/" + urlParam); } } return method + ":" + urlStr.toString(); } /** * 获取缓存key(请求请求时) *

* 接口请求时,获取权限url, 把 path 的数字参数转为 $ 号 *

* @author wangsong * @param method * @param uri * @date 2021/8/25 0025 11:01 * @return java.lang.String * @version 1.0.1 */ public static String getAuthCacheKey(String method, String uri) { String[] uriArr = uri.split("/"); StringBuffer urlStr = new StringBuffer(); for (int i = 0; i < uriArr.length; i++) { String urlParam = uriArr[i]; if (StringUtils.isNotBlank(urlParam)) { urlStr.append(XjStringUtil.isInteger(urlParam) ? "/$" : "/" + urlParam); } } return method + ":" + urlStr.toString(); } /** * 验证接口 url 唯一标识 *

* 用于定义接口时的唯一性【同请求方式和接口名不能重复】,在项目启动时进行权限url扫描时会进行获取验证 *

* * @param method 请求方式 * @param url 请求url * @return */ public static String getAuthKey(String method, String url) { return method + ":" + url; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy