public Set<String> getRoots() { String url = Urp.Instance.getApi() + "/platform/user/roots.json?app=" + UrpApp.getName(); try { String resources = HttpUtils.getResponseText(url); List rs = new Gson().fromJson(resources, List.class); return new HashSet<String>(rs); } catch (Exception e) { logger.error("Cannot access {}", url); return Collections.emptySet(); } }
@Override public boolean verify(HttpServletRequest request, String response) { String remoteip = RequestUtils.getIpAddr(request); String challenge = request.getParameter("recaptcha_challenge_field"); if (Strings.isEmpty(response)) { return false; } String result = HttpUtils.getResponseText(apibase + "/verify?remoteip=" + remoteip + "&privatekey=" + privatekey + "&challenge=" + challenge + "&response=" + response); if (!result.contains("true")) { return false; } return true; }
public Dimension getDimension(String fieldName) { Element dimensionElem = sysCache.get("dimension_" + fieldName); Dimension dimension = (dimensionElem == null) ? null : (Dimension) dimensionElem.getObjectValue(); if (null == dimension) { String url = Urp.Instance.getApi() + "/platform/user/dimensions/" + fieldName + ".json"; String resources = HttpUtils.getResponseText(url); Map rs = new Gson().fromJson(resources, Map.class); if (rs.isEmpty()) return null; dimension = toDimension(rs); sysCache.put(new Element("dimension_" + fieldName, dimension)); } return dimension; }
public Set<String> getResourceNamesByRole(String roleId) { String url = Urp.Instance.getApi() + "/platform/security/func/" + UrpApp.getName() + "/permissions/role/" + roleId + ".json"; String resources = HttpUtils.getResponseText(url); List rs = new Gson().fromJson(resources, List.class); Set<String> s = CollectUtils.newHashSet(); for (Object o : rs) { Map<String, Object> m = (Map<String, Object>) o; s.add(m.get("name").toString()); } return s; }
public Set<String> getResourceNamesByScope(Scope scope) { String url = Urp.Instance.getApi() + "/platform/security/func/" + UrpApp.getName() + "/resources.json?scope=" + scope.toString(); try { String resources = HttpUtils.getResponseText(url); List rs = new Gson().fromJson(resources, List.class); Set<String> s = CollectUtils.newHashSet(); for (Object o : rs) { Map<String, Object> m = (Map<String, Object>) o; s.add(m.get("name").toString()); } return s; } catch (Exception e) { logger.error("Cannot access {}", url); return Collections.emptySet(); } }
public FuncResource getResource(String name) { if (resourceCache.isEmpty()) { synchronized (this) { if (resourceCache.isEmpty()) { String url = Urp.Instance.getApi() + "/platform/security/func/" + UrpApp.getName() + "/resources.json"; String resources = HttpUtils.getResponseText(url); List rs = new Gson().fromJson(resources, List.class); for (Object o : rs) { Map<String, Object> m = (Map<String, Object>) o; FuncResource resource = new FuncResource(); resource.setName(m.get("name").toString()); resource.setTitle(m.get("title").toString()); resource.setScope(Scope.valueOf(m.get("scope").toString())); resource.setId((Double.valueOf(m.get("id").toString())).intValue()); resourceCache.put(resource.getName(), resource); } } } } return resourceCache.get(name); }
public List<Profile> getProfiles(String userCode, String function) { Element ele = ((Element) userCache.get(userCode)); if (null == ele) { String url = Urp.Instance.getApi() + "/platform/user/profiles/" + userCode + ".json?domain=edu"; String resources = HttpUtils.getResponseText(url); List rs = new Gson().fromJson(resources, List.class); if (rs.isEmpty()) return Collections.emptyList(); List<Profile> profiles = new ArrayList<Profile>(); for (Object o : rs) { Collection properties = (Collection) ((Map) o).get("properties"); UserProfile profile = new UserProfile(); profiles.add(profile); for (Object p : properties) { Map property = (Map) p; Dimension dimension = toDimension((Map) property.get("dimension")); Object v = property.get("value"); if (!v.equals(Profile.AllValue)) v = unmarshal((String) v, dimension); profile.getProperties().put(dimension.getName(), v); } } userCache.put(new Element(userCode, profiles)); return profiles; } else { return (List<Profile>) ele.getValue(); } }
@SuppressWarnings("rawtypes") public Permission getPermission(String user, String dataResource, String functionResource) { String key = user + "_" + dataResource; Element ele = sysCache.get(key); if (null == ele) { String url = Urp.Instance.getApi() + "/platform/security/data/permissions/user/" + user + ".json?data=" + dataResource + "&app=" + UrpApp.getName(); String resources = HttpUtils.getResponseText(url); Map rs = new Gson().fromJson(resources, Map.class); if (rs.isEmpty()) return null; else { DataPermission dp = new DataPermission(); dp.setFilters((String) rs.get("filters")); dp.setActions((String) rs.get("actions")); sysCache.put(new Element(key, dp)); return dp; } } else { return (DataPermission) ele.getValue(); } }