From eb906db6f7020f848e0e43715532413546ab0b56 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 19 Feb 2011 17:19:09 +0100 Subject: [PATCH] fix security issue --- .../resources/AbstractManagerResource.java | 93 ++++++++++++------- .../scm/api/rest/resources/UserResource.java | 32 ++++++- 2 files changed, 89 insertions(+), 36 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java index 03797d1be8..67a706cd77 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java @@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory; import sonia.scm.LastModifiedAware; import sonia.scm.Manager; import sonia.scm.ModelObject; +import sonia.scm.security.ScmSecurityException; import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ @@ -56,7 +57,6 @@ import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.CacheControl; import javax.ws.rs.core.Context; import javax.ws.rs.core.EntityTag; @@ -145,20 +145,27 @@ public abstract class AbstractManagerResource * * @param userManager * @param encryptionHandler + * @param securityContextProvider */ @Inject public UserResource(UserManager userManager, - EncryptionHandler encryptionHandler) + EncryptionHandler encryptionHandler, + Provider securityContextProvider) { super(userManager); this.encryptionHandler = encryptionHandler; + this.securityContextProvider = securityContextProvider; + } + + //~--- get methods ---------------------------------------------------------- + + /** + * Method description + * + * + * @param request + * @param id + * + * @return + */ + @Override + public Response get(Request request, String id) + { + SecurityUtil.assertIsAdmin(securityContextProvider); + + return super.get(request, id); } //~--- methods -------------------------------------------------------------- @@ -224,4 +251,7 @@ public class UserResource extends AbstractManagerResource /** Field description */ private EncryptionHandler encryptionHandler; + + /** Field description */ + private Provider securityContextProvider; }