Example #1
0
 /**
  * 根据请求地址判断用户是否有权访问该url
  *
  * @param requestUrl 请求URL地址
  * @param userId 用户ID
  * @return
  */
 @Cacheable(
     value = {CacheConstants.RESOURCE_USER_AUTHORITY_URLS_CACHE},
     key = "#requestUrl + #userId +'isAuthority'")
 public boolean isAuthority(String requestUrl, Long userId)
     throws DaoException, SystemException, ServiceException {
   // 如果是超级管理员 直接允许被授权
   if (userManager.getSuperUser().getId().equals(userId)) {
     return true;
   }
   // 检查该URL是否需要拦截
   boolean isInterceptorUrl = this.isInterceptorUrl(requestUrl);
   if (isInterceptorUrl) {
     // 用户权限
     List<String> userAuthoritys = this.getUserAuthoritysByUserId(userId);
     for (String markUrl : userAuthoritys) {
       String[] markUrls = markUrl.split(";");
       for (int i = 0; i < markUrls.length; i++) {
         if (StringUtils.isNotBlank(markUrls[i])
             && StringUtils.simpleWildcardMatch(markUrls[i], requestUrl)) {
           return true;
         }
       }
     }
     return false;
   }
   logger.debug(
       "缓存:{}",
       CacheConstants.RESOURCE_USER_AUTHORITY_URLS_CACHE
           + "参数:requestUrl="
           + requestUrl
           + ",userId="
           + userId);
   return true;
 }
Example #2
0
 /**
  * 检查某个URL是都需要拦截
  *
  * @param requestUrl 检查的URL地址
  * @return
  */
 public boolean isInterceptorUrl(String requestUrl)
     throws DaoException, SystemException, ServiceException {
   List<String> markUrlList = this.getAllInterceptorUrls();
   for (String markUrl : markUrlList) {
     String[] markUrls = markUrl.split(";");
     for (int i = 0; i < markUrls.length; i++) {
       if (StringUtils.isNotBlank(markUrls[i])
           && StringUtils.simpleWildcardMatch(markUrls[i], requestUrl)) {
         return true;
       }
     }
   }
   return false;
 }