| | |
| | | if (null == ue) { |
| | | return; |
| | | } |
| | | |
| | | // 9.获取资源实体 |
| | | // 9.获取资源实体,status:0-禁用,1-启用原始地址,2-启用代理地址 |
| | | ResEntity entity = getResEntity(ue, resId); |
| | | if (null == entity || StaticData.I2 != entity.getStatus() || StringHelper.isNull(entity.getProxy()) || StringHelper.isNull(entity.getUrl())) { |
| | | WebHelper.writeStr2Page(res, ILLEGAL_RESOURCE); |
| | | return; |
| | | } |
| | | |
| | | insertLog(req, ue, resId); |
| | | |
| | | String url = getSourceUrl(req, entity, token, isRest); |
| | | String url = getUrl(req, entity, token, isRest); |
| | | res.setHeader("token", token); |
| | | forward(req, res, entity, url); |
| | | } |
| | |
| | | if (StringHelper.isEmpty(ip)) { |
| | | return WebHelper.writeStr2Page(res, AuthInterceptor.IP_NULL); |
| | | } |
| | | |
| | | // 5.检查黑名单 |
| | | if (!checkBlackList(ip, req)) { |
| | | return WebHelper.writeStr2Page(res, AuthInterceptor.BLACK_LIST); |
| | | } |
| | | |
| | | // 6.admin跳过权限检测 |
| | | if (StaticData.ADMIN.equals(ue.getUid())) { |
| | | return true; |
| | | } |
| | | |
| | | // 7.检查白名单 |
| | | if (!checkWhiteList(ip, req)) { |
| | | // 检查IP一致性 |
| | |
| | | return WebHelper.writeStr2Page(res, AuthInterceptor.ILLEGAL_TOKEN); |
| | | } |
| | | } |
| | | |
| | | // 8.检查用户ID是否禁用 |
| | | if (sysService.tokenService.isUidDisable(ue)) { |
| | | return WebHelper.writeStr2Page(res, AuthInterceptor.USER_LOCK); |
| | |
| | | if (blackList == null || blackList.isEmpty()) { |
| | | return true; |
| | | } |
| | | if (blackList.contains(ip)) { |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | return !blackList.contains(ip); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取原始Url |
| | | * 获取Url |
| | | */ |
| | | private String getSourceUrl(HttpServletRequest req, ResEntity entity, String token, boolean isRest) { |
| | | private String getUrl(HttpServletRequest req, ResEntity entity, String token, boolean isRest) { |
| | | String proxyUrl = entity.getProxy().replace("{token}", token); |
| | | int end = req.getRequestURL().indexOf(proxyUrl) + proxyUrl.length(); |
| | | |
| | | String url = entity.getUrl() + req.getRequestURL().substring(end); |
| | | if (isRest) { |
| | | url = url.replace("/v6/wmts/", "/v6/rest/"); |
| | | } |
| | | if (null != req.getQueryString()) { |
| | | url = url + (url.contains("?") ? "&" : "?") + req.getQueryString(); |
| | | } |
| | | if (!StringHelper.isNull(entity.getArgs())) { |
| | | url = url + (url.contains("?") ? "&" : "?") + entity.getArgs(); |
| | | // category:0-其他,1-GisServer,2-GeoServer,3-数简 |
| | | if (StaticData.I2 == entity.getCategory()) { |
| | | // |
| | | } else if (StaticData.I3 == entity.getCategory()) { |
| | | if (isRest) { |
| | | url = url.replace("/v6/wmts/", "/v6/rest/"); |
| | | } |
| | | if (!StringHelper.isNull(entity.getArgs())) { |
| | | url = url + (url.contains("?") ? "&" : "?") + entity.getArgs(); |
| | | } |
| | | } |
| | | |
| | | // System.out.println(url) |
| | | return url; |
| | | } |
| | | |