Author: taylor
Date: Sat Jan 16 00:22:27 2016
New Revision: 1724898

URL: http://svn.apache.org/viewvc?rev=1724898&view=rev
Log:
further tightening security around new user manager service for sql injections. 
Fixing bug in new user manager where the security behavior was getting 
overriden with an empty policy

Modified:
    
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/UserManagerService.java

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=1724898&r1=1724897&r2=1724898&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
 Sat Jan 16 00:22:27 2016
@@ -23,13 +23,15 @@ import org.apache.jetspeed.services.bean
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by dtaylor on 5/2/15.
  */
 public class AbstractRestService {
 
-    private PortletActionSecurityBehavior securityBehavior;
+    protected PortletActionSecurityBehavior securityBehavior;
 
     protected AbstractRestService(PortletActionSecurityBehavior 
securityBehavior) {
         this.securityBehavior = securityBehavior;
@@ -47,4 +49,22 @@ public class AbstractRestService {
         }
     }
 
+    protected String stripSQLInjection(String in) {
+        if (in == null) {
+            return null;
+        }
+        return in.replaceAll("['\"]", "");
+    }
+
+    protected List<String> stripSQLInjection(List<String> in) {
+        if (in == null) {
+            return null;
+        }
+        ArrayList<String> out = new ArrayList<>();
+        for (String s : in) {
+            out.add(stripSQLInjection(s));
+        }
+        return out;
+    }
+
 }

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=1724898&r1=1724897&r2=1724898&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
 Sat Jan 16 00:22:27 2016
@@ -82,7 +82,6 @@ public class UserManagerService extends
     private GroupManager groupManager;
     private Profiler profiler;
     private PageManager pageManager;
-    private PortletActionSecurityBehavior securityBehavior;
 
     public UserManagerService(UserManager userManager, RoleManager 
roleManager, GroupManager groupManager, Profiler profiler, PageManager 
pageManager,
                               PortletActionSecurityBehavior securityBehavior)
@@ -118,7 +117,14 @@ public class UserManagerService extends
                                        @QueryParam("attribute_key") 
List<String> attributeKeys, @QueryParam("attribute_value") List<String> 
attributeValues)
     {
         checkPrivilege(servletRequest, JetspeedActions.VIEW);
-        
+
+        userName = stripSQLInjection(userName);
+        sortDirection = stripSQLInjection(sortDirection);
+        roles = stripSQLInjection(roles);
+        groups = stripSQLInjection(groups);
+        attributeKeys = stripSQLInjection(attributeKeys);
+        attributeValues = stripSQLInjection(attributeValues);
+
         Map<String, String> attributeMap = null;
         
         if (attributeKeys != null && attributeKeys.size() > 0 && 
attributeKeys.size() == attributeValues.size())
@@ -568,4 +574,5 @@ public class UserManagerService extends
             throw new WebApplicationException(new 
JetspeedException("Insufficient privilege to access this REST service."));
         }
     }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org
For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org

Reply via email to