Author: taylor
Date: Mon May 25 18:33:15 2015
New Revision: 1681627
URL: http://svn.apache.org/r1681627
Log:
JS2-1320: completing chart portlets, improving chart data apis, psml cleanup, securing chart pages
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/cache/impl/JetspeedCacheMonitorImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/AbstractRestService.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/ProfilerManagementService.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/StatisticsManagementService.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/UserManagerService.java
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/cache/impl/JetspeedCacheMonitorImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/cache/impl/JetspeedCacheMonitorImpl.java?rev=1681627&r1=1681626&r2=1681627&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/cache/impl/JetspeedCacheMonitorImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/cache/impl/JetspeedCacheMonitorImpl.java Mon May 25 18:33:15 2015
@@ -16,6 +16,12 @@
*/
package org.apache.jetspeed.cache.impl;
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.Statistics;
+import org.apache.jetspeed.cache.CacheMonitorState;
+import org.apache.jetspeed.cache.JetspeedCacheMonitor;
+
import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
@@ -23,13 +29,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import net.sf.ehcache.Cache;
-import net.sf.ehcache.CacheManager;
-import net.sf.ehcache.Statistics;
-
-import org.apache.jetspeed.cache.CacheMonitorState;
-import org.apache.jetspeed.cache.JetspeedCacheMonitor;
-
public class JetspeedCacheMonitorImpl implements JetspeedCacheMonitor
{
private CacheManager cacheManager;
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/AbstractRestService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/AbstractRestService.java?rev=1681627&r1=1681626&r2=1681627&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/AbstractRestService.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/AbstractRestService.java Mon May 25 18:33:15 2015
@@ -16,12 +16,13 @@
*/
package org.apache.jetspeed.services.rest;
-import org.apache.jetspeed.exception.JetspeedException;
import org.apache.jetspeed.layout.PortletActionSecurityBehavior;
import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.services.beans.UpdateResultBean;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Response;
/**
* Created by dtaylor on 5/2/15.
@@ -39,7 +40,10 @@ public class AbstractRestService {
RequestContext requestContext = (RequestContext) servletRequest.getAttribute(RequestContext.REQUEST_PORTALENV);
if (securityBehavior != null && !securityBehavior.checkAccess(requestContext, action))
{
- throw new WebApplicationException(new JetspeedException("Insufficient privilege to access this REST service."));
+ throw new WebApplicationException(
+ Response.status(Response.Status.UNAUTHORIZED).entity(
+ new UpdateResultBean(Response.Status.UNAUTHORIZED.getStatusCode(),
+ "Insufficient privilege to access this REST service")).build());
}
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/ProfilerManagementService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/ProfilerManagementService.java?rev=1681627&r1=1681626&r2=1681627&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/ProfilerManagementService.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/ProfilerManagementService.java Mon May 25 18:33:15 2015
@@ -95,11 +95,13 @@ public class ProfilerManagementService e
checkPrivilege(servletRequest, JetspeedActions.VIEW);
if (StringUtils.isBlank(profileId)) {
- throw new WebApplicationException(new IllegalArgumentException("Profile id not specified"));
+ throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity(
+ new UpdateResultBean(Response.Status.BAD_REQUEST.getStatusCode(), "Profile id not specified")).build());
}
ProfilingRule rule = profiler.getRule(profileId);
if (rule == null) {
- throw new WebApplicationException(new IllegalArgumentException("Profile id not found with the specified id: " + profileId));
+ throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity(
+ new UpdateResultBean(Response.Status.BAD_REQUEST.getStatusCode(), "Profile id not found with the specified id: " + profileId)).build());
}
ProfileEditBean editBean = new ProfileEditBean(rule.getId(), rule.getTitle(), rule.getClassname());
for (RuleCriterion criterion : rule.getRuleCriteria()) {
@@ -123,14 +125,16 @@ public class ProfilerManagementService e
dtoProfile = writeMapper.readValue(json, ProfileEditBean.class);
}
catch (Exception e) {
- e.printStackTrace();
- throw new WebApplicationException(new IllegalArgumentException("Bad input on profile data"));
+ throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
+ new UpdateResultBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), "Bad input on profile data")).build());
}
if (StringUtils.isBlank(dtoProfile.getId())) {
- throw new WebApplicationException(new IllegalArgumentException("Profile id not specified"));
+ throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
+ new UpdateResultBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), "Profile id not specified")).build());
}
if (StringUtils.isBlank(dtoProfile.getConcreteClass())) {
- throw new WebApplicationException(new IllegalArgumentException("Concrete Class not specified"));
+ throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
+ new UpdateResultBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), "Concrete Class not specified")).build());
}
try {
boolean isAdd = false;
@@ -188,11 +192,13 @@ public class ProfilerManagementService e
}
profiler.storeProfilingRule(rule);
- return new UpdateResultBean(200, "OK");
+ return new UpdateResultBean(Response.Status.OK.getStatusCode(), "OK");
}
catch (Exception e) {
- log.error("failed to update profile for " + dtoProfile.getId(), e);
- return new UpdateResultBean(500, e.getMessage());
+ String message = "failed to update profile for " + dtoProfile.getId();
+ log.error(message, e);
+ throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
+ new UpdateResultBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), message)).build());
}
}
@@ -207,7 +213,8 @@ public class ProfilerManagementService e
checkPrivilege(servletRequest, JetspeedActions.VIEW);
if (profileIds == null || profileIds.size() == 0) {
- throw new WebApplicationException(new IllegalArgumentException("Profile ids to delete not specified"));
+ throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
+ new UpdateResultBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), "Profile ids to delete not specified")).build());
}
try {
@@ -218,11 +225,12 @@ public class ProfilerManagementService e
profiler.deleteProfilingRule(rule);
}
}
- return new UpdateResultBean(200, "OK");
+ return new UpdateResultBean(Response.Status.OK.getStatusCode(), "OK");
} catch (Exception e) {
String message = String.format("Error converting profiler ids [%s]", profileIds);
log.debug(message);
- throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity(message).build());
+ throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
+ new UpdateResultBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), message)).build());
}
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/StatisticsManagementService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/StatisticsManagementService.java?rev=1681627&r1=1681626&r2=1681627&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/StatisticsManagementService.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/StatisticsManagementService.java Mon May 25 18:33:15 2015
@@ -20,6 +20,7 @@ import org.apache.jetspeed.JetspeedActio
import org.apache.jetspeed.cache.CacheMonitorState;
import org.apache.jetspeed.cache.JetspeedCacheMonitor;
import org.apache.jetspeed.layout.PortletActionSecurityBehavior;
+import org.apache.jetspeed.services.beans.UpdateResultBean;
import org.apache.jetspeed.statistics.AggregateStatistics;
import org.apache.jetspeed.statistics.InvalidCriteriaException;
import org.apache.jetspeed.statistics.PortalStatistics;
@@ -28,10 +29,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.util.HashMap;
import java.util.List;
@@ -45,6 +48,7 @@ import java.util.Map;
@Path("/statistics/")
public class StatisticsManagementService extends AbstractRestService {
+ protected static final String COULD_NOT_PROCESS_REQUEST_FOR_STATISTICS = "Could not process request for statistics";
private static Logger log = LoggerFactory.getLogger(StatisticsManagementService.class);
private PortalStatistics statistics;
@@ -67,8 +71,9 @@ public class StatisticsManagementService
*/
@GET
@Path("/memory")
- public Map<String,Map<String,Long>> memoryInfo(@Context HttpServletRequest servletRequest, @Context UriInfo uriInfo) {
-
+ public Map<String,Map<String,Long>> memoryInfo(@Context HttpServletRequest servletRequest,
+ @Context final HttpServletResponse response,
+ @Context UriInfo uriInfo) {
checkPrivilege(servletRequest, JetspeedActions.VIEW);
Runtime runtime = Runtime.getRuntime();
@@ -114,7 +119,10 @@ public class StatisticsManagementService
}
}
catch (InvalidCriteriaException e) {
- throw new WebApplicationException(new IllegalArgumentException("Statistics query criteria invalid"));
+
+ throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity(
+ new UpdateResultBean(Response.Status.BAD_REQUEST.getStatusCode(),
+ COULD_NOT_PROCESS_REQUEST_FOR_STATISTICS)).build());
}
Map<String,Map<String,Long>> result = new HashMap<>();
@@ -155,20 +163,12 @@ public class StatisticsManagementService
}
}
catch (InvalidCriteriaException e) {
- throw new WebApplicationException(new IllegalArgumentException("Statistics query criteria invalid"));
+ throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity(
+ new UpdateResultBean(Response.Status.BAD_REQUEST.getStatusCode(),
+ COULD_NOT_PROCESS_REQUEST_FOR_STATISTICS)).build());
}
-
-// Map<String,Long> users = new HashMap<>();
-// users.put("Admin", (long)19);
-// users.put("Mary", (long)9);
-// users.put("Ron", (long)5);
-// users.put("David", (long)12);
-// users.put("John", (long) 10);
-// users.put("Luke", (long) 1);
-
Map<String,Map<String,Long>> result = new HashMap<>();
result.put("users", users);
-
return result;
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/UserManagerService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/UserManagerService.java?rev=1681627&r1=1681626&r2=1681627&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/UserManagerService.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/UserManagerService.java Mon May 25 18:33:15 2015
@@ -19,6 +19,7 @@ package org.apache.jetspeed.services.res
import org.apache.jetspeed.Jetspeed;
import org.apache.jetspeed.JetspeedActions;
import org.apache.jetspeed.administration.PortalConfigurationConstants;
+import org.apache.jetspeed.exception.JetspeedException;
import org.apache.jetspeed.layout.PortletActionSecurityBehavior;
import org.apache.jetspeed.om.folder.Folder;
import org.apache.jetspeed.page.PageManager;
@@ -27,6 +28,7 @@ import org.apache.jetspeed.profiler.Prof
import org.apache.jetspeed.profiler.Profiler;
import org.apache.jetspeed.profiler.rules.PrincipalRule;
import org.apache.jetspeed.profiler.rules.ProfilingRule;
+import org.apache.jetspeed.request.RequestContext;
import org.apache.jetspeed.security.Group;
import org.apache.jetspeed.security.GroupManager;
import org.apache.jetspeed.security.JetspeedPrincipalQueryContext;
@@ -557,4 +559,13 @@ public class UserManagerService extends
return templates;
}
+ protected void checkPrivilege(HttpServletRequest servletRequest, String action)
+ {
+ RequestContext requestContext = (RequestContext) servletRequest.getAttribute(RequestContext.REQUEST_PORTALENV);
+
+ if (securityBehavior != null && !securityBehavior.checkAccess(requestContext, action))
+ {
+ throw new WebApplicationException(new JetspeedException("Insufficient privilege to access this REST service."));
+ }
+ }
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.