Search in sources :

Example 1 with PermissionData

use of org.jeecg.common.aspect.annotation.PermissionData in project kms by mahonelau.

the class PermissionDataAspect method arround.

@Around("pointCut()")
public Object arround(ProceedingJoinPoint point) throws Throwable {
    HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
    MethodSignature signature = (MethodSignature) point.getSignature();
    Method method = signature.getMethod();
    PermissionData pd = method.getAnnotation(PermissionData.class);
    String component = pd.pageComponent();
    String requestMethod = request.getMethod();
    String requestPath = request.getRequestURI().substring(request.getContextPath().length());
    requestPath = filterUrl(requestPath);
    log.debug("拦截请求 >> " + requestPath + ";请求类型 >> " + requestMethod);
    String username = JwtUtil.getUserNameByToken(request);
    // 查询数据权限信息
    // TODO 微服务情况下也得支持缓存机制
    List<SysPermissionDataRuleModel> dataRules = commonAPI.queryPermissionDataRule(component, requestPath, username);
    if (dataRules != null && dataRules.size() > 0) {
        // 临时存储
        JeecgDataAutorUtils.installDataSearchConditon(request, dataRules);
        // TODO 微服务情况下也得支持缓存机制
        SysUserCacheInfo userinfo = commonAPI.getCacheUser(username);
        JeecgDataAutorUtils.installUserInfo(request, userinfo);
    }
    return point.proceed();
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) SysPermissionDataRuleModel(org.jeecg.common.system.vo.SysPermissionDataRuleModel) MethodSignature(org.aspectj.lang.reflect.MethodSignature) SysUserCacheInfo(org.jeecg.common.system.vo.SysUserCacheInfo) Method(java.lang.reflect.Method) PermissionData(org.jeecg.common.aspect.annotation.PermissionData) Around(org.aspectj.lang.annotation.Around)

Example 2 with PermissionData

use of org.jeecg.common.aspect.annotation.PermissionData in project jeecg-boot by jeecgboot.

the class PermissionDataAspect method arround.

@Around("pointCut()")
public Object arround(ProceedingJoinPoint point) throws Throwable {
    HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
    MethodSignature signature = (MethodSignature) point.getSignature();
    Method method = signature.getMethod();
    PermissionData pd = method.getAnnotation(PermissionData.class);
    String component = pd.pageComponent();
    String requestMethod = request.getMethod();
    String requestPath = request.getRequestURI().substring(request.getContextPath().length());
    requestPath = filterUrl(requestPath);
    // TODO 参数顺序调整有隐患
    if (requestPath.indexOf(UrlMatchEnum.CGREPORT_DATA.getMatch_url()) >= 0) {
        // 获取地址栏参数
        String urlParamString = request.getParameter(CommonConstant.ONL_REP_URL_PARAM_STR);
        if (oConvertUtils.isNotEmpty(urlParamString)) {
            requestPath += "?" + urlParamString;
        }
    }
    // update-end-author:taoyan date:20211027 for:JTC-132【online报表权限】online报表带参数的菜单配置数据权限无效
    log.info("拦截请求 >> {} ; 请求类型 >> {} . ", requestPath, requestMethod);
    String username = JwtUtil.getUserNameByToken(request);
    // 查询数据权限信息
    // TODO 微服务情况下也得支持缓存机制
    List<SysPermissionDataRuleModel> dataRules = commonAPI.queryPermissionDataRule(component, requestPath, username);
    if (dataRules != null && dataRules.size() > 0) {
        // 临时存储
        JeecgDataAutorUtils.installDataSearchConditon(request, dataRules);
        // TODO 微服务情况下也得支持缓存机制
        SysUserCacheInfo userinfo = commonAPI.getCacheUser(username);
        JeecgDataAutorUtils.installUserInfo(request, userinfo);
    }
    return point.proceed();
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) SysPermissionDataRuleModel(org.jeecg.common.system.vo.SysPermissionDataRuleModel) MethodSignature(org.aspectj.lang.reflect.MethodSignature) SysUserCacheInfo(org.jeecg.common.system.vo.SysUserCacheInfo) Method(java.lang.reflect.Method) PermissionData(org.jeecg.common.aspect.annotation.PermissionData) Around(org.aspectj.lang.annotation.Around)

Example 3 with PermissionData

use of org.jeecg.common.aspect.annotation.PermissionData in project kykms by mahonelau.

the class PermissionDataAspect method arround.

@Around("pointCut()")
public Object arround(ProceedingJoinPoint point) throws Throwable {
    HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
    MethodSignature signature = (MethodSignature) point.getSignature();
    Method method = signature.getMethod();
    PermissionData pd = method.getAnnotation(PermissionData.class);
    String component = pd.pageComponent();
    String requestMethod = request.getMethod();
    String requestPath = request.getRequestURI().substring(request.getContextPath().length());
    requestPath = filterUrl(requestPath);
    log.debug("拦截请求 >> " + requestPath + ";请求类型 >> " + requestMethod);
    String username = JwtUtil.getUserNameByToken(request);
    // 查询数据权限信息
    // TODO 微服务情况下也得支持缓存机制
    List<SysPermissionDataRuleModel> dataRules = commonAPI.queryPermissionDataRule(component, requestPath, username);
    if (dataRules != null && dataRules.size() > 0) {
        // 临时存储
        JeecgDataAutorUtils.installDataSearchConditon(request, dataRules);
        // TODO 微服务情况下也得支持缓存机制
        SysUserCacheInfo userinfo = commonAPI.getCacheUser(username);
        JeecgDataAutorUtils.installUserInfo(request, userinfo);
    }
    return point.proceed();
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) SysPermissionDataRuleModel(org.jeecg.common.system.vo.SysPermissionDataRuleModel) MethodSignature(org.aspectj.lang.reflect.MethodSignature) SysUserCacheInfo(org.jeecg.common.system.vo.SysUserCacheInfo) Method(java.lang.reflect.Method) PermissionData(org.jeecg.common.aspect.annotation.PermissionData) Around(org.aspectj.lang.annotation.Around)

Aggregations

Method (java.lang.reflect.Method)3 HttpServletRequest (javax.servlet.http.HttpServletRequest)3 Around (org.aspectj.lang.annotation.Around)3 MethodSignature (org.aspectj.lang.reflect.MethodSignature)3 PermissionData (org.jeecg.common.aspect.annotation.PermissionData)3 SysPermissionDataRuleModel (org.jeecg.common.system.vo.SysPermissionDataRuleModel)3 SysUserCacheInfo (org.jeecg.common.system.vo.SysUserCacheInfo)3