This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.jcr.jackrabbit.usermanager-2.2.2 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-jackrabbit-usermanager.git
commit 9e62caccae42fc2e6da7e39dd22f6354e4e4ab62 Author: Carsten Ziegeler <cziege...@apache.org> AuthorDate: Tue Jul 29 12:21:59 2014 +0000 Clean up usage of SCR annotations git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/jackrabbit-usermanager@1614322 13f79535-47bb-0310-9956-ffa450edef68 --- .../impl/post/AbstractAuthorizablePostServlet.java | 14 +--- .../impl/post/AbstractUserPostServlet.java | 6 +- .../impl/post/ChangeUserPasswordServlet.java | 19 +++++- .../usermanager/impl/post/CreateUserServlet.java | 78 +++++++++++++--------- .../usermanager/impl/post/UpdateUserServlet.java | 43 ++++++++---- 5 files changed, 99 insertions(+), 61 deletions(-) diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java index 8ccff33..14f546f 100644 --- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java +++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java @@ -33,8 +33,6 @@ import javax.jcr.Value; import javax.jcr.ValueFactory; import javax.servlet.ServletException; -import org.apache.felix.scr.annotations.Component; -import org.apache.felix.scr.annotations.Property; import org.apache.jackrabbit.api.security.user.Authorizable; import org.apache.sling.api.SlingIOException; import org.apache.sling.api.request.RequestParameter; @@ -49,20 +47,11 @@ import org.osgi.service.component.ComponentContext; /** * Base class for all the POST servlets for the UserManager operations */ -@Component (componentAbstract=true) public abstract class AbstractAuthorizablePostServlet extends AbstractPostServlet { private static final long serialVersionUID = -5918670409789895333L; - @Property (value={ - "EEE MMM dd yyyy HH:mm:ss 'GMT'Z", - "yyyy-MM-dd'T'HH:mm:ss.SSSZ", - "yyyy-MM-dd'T'HH:mm:ss", - "yyyy-MM-dd", - "dd.MM.yyyy HH:mm:ss", - "dd.MM.yyyy" - }) - private static final String PROP_DATE_FORMAT = "servlet.post.dateFormats"; + public static final String PROP_DATE_FORMAT = "servlet.post.dateFormats"; private DateParser dateParser; @@ -681,6 +670,7 @@ public abstract class AbstractAuthorizablePostServlet extends return true; } + @Override public String toString() { return this.getString(); } diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractUserPostServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractUserPostServlet.java index 8d0d1e2..23ad715 100644 --- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractUserPostServlet.java +++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractUserPostServlet.java @@ -16,13 +16,11 @@ */ package org.apache.sling.jackrabbit.usermanager.impl.post; -import org.apache.felix.scr.annotations.Component; import org.osgi.service.component.ComponentContext; /** * Base class for servlets manipulating users */ -@Component (componentAbstract=true) public abstract class AbstractUserPostServlet extends AbstractAuthorizablePostServlet { @@ -30,10 +28,12 @@ public abstract class AbstractUserPostServlet extends // ---------- SCR Integration ---------------------------------------------- - protected void activate(ComponentContext context) { + @Override + protected void activate(ComponentContext context) { super.activate(context); } + @Override protected void deactivate(ComponentContext context) { super.deactivate(context); } diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java index a27fe0c..7ca41a0 100644 --- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java +++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java @@ -84,7 +84,7 @@ import org.slf4j.LoggerFactory; * * <h4>Notes</h4> */ -@Component (immediate=true, metatype=true, +@Component (metatype=true, label="%changeUserPassword.post.operation.name", description="%changeUserPassword.post.operation.description") @Service (value={ @@ -97,7 +97,16 @@ import org.slf4j.LoggerFactory; @Property (name="sling.servlet.methods", value="POST"), @Property (name="sling.servlet.selectors", - value="changePassword") + value="changePassword"), + @Property (name=AbstractAuthorizablePostServlet.PROP_DATE_FORMAT, + value={ + "EEE MMM dd yyyy HH:mm:ss 'GMT'Z", + "yyyy-MM-dd'T'HH:mm:ss.SSSZ", + "yyyy-MM-dd'T'HH:mm:ss", + "yyyy-MM-dd", + "dd.MM.yyyy HH:mm:ss", + "dd.MM.yyyy" + }) }) public class ChangeUserPasswordServlet extends AbstractUserPostServlet implements ChangeUserPassword { private static final long serialVersionUID = 1923614318474654502L; @@ -132,6 +141,7 @@ public class ChangeUserPasswordServlet extends AbstractUserPostServlet implement * @param componentContext The OSGi <code>ComponentContext</code> of this * component. */ + @Override protected void activate(ComponentContext componentContext) { super.activate(componentContext); Dictionary<?, ?> props = componentContext.getProperties(); @@ -141,6 +151,11 @@ public class ChangeUserPasswordServlet extends AbstractUserPostServlet implement log.info("User Admin Group Name {}", this.userAdminGroupName); } + @Override + protected void deactivate(ComponentContext context) { + super.deactivate(context); + } + /* * (non-Javadoc) * @see diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java index 77721fd..5c6232d 100644 --- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java +++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java @@ -34,7 +34,6 @@ import org.apache.jackrabbit.api.security.user.Group; import org.apache.jackrabbit.api.security.user.User; import org.apache.jackrabbit.api.security.user.UserManager; import org.apache.sling.api.SlingHttpServletRequest; -import org.apache.sling.api.servlets.HtmlResponse; import org.apache.sling.commons.osgi.OsgiUtil; import org.apache.sling.jackrabbit.usermanager.CreateUser; import org.apache.sling.jackrabbit.usermanager.impl.resource.AuthorizableResourceProvider; @@ -88,20 +87,29 @@ import org.slf4j.LoggerFactory; * curl -F:name=ieb -Fpwd=password -FpwdConfirm=password -Fproperty1=value1 http://localhost:8080/system/userManager/user.create.html * </code> */ -@Component (immediate=true, metatype=true, inherit=true, +@Component (metatype=true, label="%createUser.post.operation.name", description="%createUser.post.operation.description") @Service(value={ Servlet.class, CreateUser.class -}) +}) @Properties ({ @Property (name="sling.servlet.resourceTypes", value="sling/users"), @Property (name="sling.servlet.methods", value="POST"), @Property (name="sling.servlet.selectors", - value="create") + value="create"), + @Property (name=AbstractAuthorizablePostServlet.PROP_DATE_FORMAT, + value={ + "EEE MMM dd yyyy HH:mm:ss 'GMT'Z", + "yyyy-MM-dd'T'HH:mm:ss.SSSZ", + "yyyy-MM-dd'T'HH:mm:ss", + "yyyy-MM-dd", + "dd.MM.yyyy HH:mm:ss", + "dd.MM.yyyy" + }) }) public class CreateUserServlet extends AbstractUserPostServlet implements CreateUser { private static final long serialVersionUID = 6871481922737658675L; @@ -126,16 +134,16 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create * @see #PAR_USER_ADMIN_GROUP_NAME */ private static final String DEFAULT_USER_ADMIN_GROUP_NAME = "UserAdmin"; - + /** - * The name of the configuration parameter providing the + * The name of the configuration parameter providing the * 'User administrator' group name. */ @Property (value=DEFAULT_USER_ADMIN_GROUP_NAME) private static final String PAR_USER_ADMIN_GROUP_NAME = "user.admin.group.name"; private String userAdminGroupName = DEFAULT_USER_ADMIN_GROUP_NAME; - + /** * The JCR Repository we access to resolve resources */ @@ -170,6 +178,7 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create * @param componentContext The OSGi <code>ComponentContext</code> of this * component. */ + @Override protected void activate(ComponentContext componentContext) { super.activate(componentContext); Dictionary<?, ?> props = componentContext.getProperties(); @@ -181,12 +190,17 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create } else { selfRegistrationEnabled = DEFAULT_SELF_REGISTRATION_ENABLED; } - + this.userAdminGroupName = OsgiUtil.toString(props.get(PAR_USER_ADMIN_GROUP_NAME), DEFAULT_USER_ADMIN_GROUP_NAME); log.info("User Admin Group Name {}", this.userAdminGroupName); } + @Override + protected void deactivate(ComponentContext context) { + super.deactivate(context); + } + /* * (non-Javadoc) * @see @@ -198,17 +212,17 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create protected void handleOperation(SlingHttpServletRequest request, AbstractPostResponse response, List<Modification> changes) throws RepositoryException { - + Session session = request.getResourceResolver().adaptTo(Session.class); String principalName = request.getParameter(SlingPostConstants.RP_NODE_NAME); - User user = createUser(session, - principalName, + User user = createUser(session, + principalName, request.getParameter("pwd"), request.getParameter("pwdConfirm"), - request.getRequestParameterMap(), + request.getRequestParameterMap(), changes); - + String userPath = null; if (user == null) { if (changes.size() > 0) { @@ -221,7 +235,7 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create userPath = AuthorizableResourceProvider.SYSTEM_USER_MANAGER_USER_PREFIX + user.getID(); } - + if (userPath != null) { response.setPath(userPath); response.setLocation(externalizePath(request, userPath)); @@ -229,18 +243,18 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create response.setParentLocation(externalizePath(request, AuthorizableResourceProvider.SYSTEM_USER_MANAGER_USER_PATH)); } - + /* (non-Javadoc) * @see org.apache.sling.jackrabbit.usermanager.CreateUser#createUser(javax.jcr.Session, java.lang.String, java.lang.String, java.lang.String, java.util.Map, java.util.List) */ - public User createUser(Session jcrSession, - String name, + public User createUser(Session jcrSession, + String name, String password, - String passwordConfirm, + String passwordConfirm, Map<String, ?> properties, - List<Modification> changes) + List<Modification> changes) throws RepositoryException { - + if (jcrSession == null) { throw new RepositoryException("JCR Session not found"); } @@ -251,7 +265,7 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create UserManager um = AccessControlUtil.getUserManager(jcrSession); User currentUser = (User) um.getAuthorizable(jcrSession.getUserID()); administrator = currentUser.isAdmin(); - + if (!administrator) { //check if the user is a member of the 'User administrator' group Authorizable userAdmin = um.getAuthorizable(this.userAdminGroupName); @@ -261,14 +275,14 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create administrator = true; } } - + } } catch ( Exception ex ) { log.warn("Failed to determine if the user is an admin, assuming not. Cause: "+ex.getMessage()); administrator = false; } - - + + // make sure user self-registration is enabled if (!administrator && !selfRegistrationEnabled) { throw new RepositoryException( @@ -287,7 +301,7 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create throw new RepositoryException( "Password value does not match the confirmation password"); } - + User user = null; Session selfRegSession = jcrSession; boolean useAdminSession = !administrator && selfRegistrationEnabled; @@ -297,7 +311,7 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create // but self-registration is enabled, so use an admin session // to do the work. selfRegSession = getSession(); - } + } UserManager userManager = AccessControlUtil.getUserManager(selfRegSession); Authorizable authorizable = userManager.getAuthorizable(name); @@ -311,7 +325,7 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create user = userManager.createUser(name, password); String userPath = AuthorizableResourceProvider.SYSTEM_USER_MANAGER_USER_PREFIX + user.getID(); - + Map<String, RequestProperty> reqProperties = collectContent( properties, userPath); @@ -323,7 +337,7 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create if (selfRegSession.hasPendingChanges()) { selfRegSession.save(); } - + if (useAdminSession) { //lookup the user from the user session so we can return a live object UserManager userManager2 = AccessControlUtil.getUserManager(jcrSession); @@ -333,16 +347,16 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create } else { user = null; } - } + } } } finally { if (useAdminSession) { //done with the self-reg admin session, so clean it up ungetSession(selfRegSession); - } + } } - + return user; } - + } diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java index f26eab0..c61b40d 100644 --- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java +++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java @@ -33,13 +33,13 @@ import org.apache.jackrabbit.api.security.user.UserManager; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceNotFoundException; -import org.apache.sling.api.servlets.HtmlResponse; import org.apache.sling.jackrabbit.usermanager.UpdateUser; import org.apache.sling.jackrabbit.usermanager.impl.resource.AuthorizableResourceProvider; import org.apache.sling.jcr.base.util.AccessControlUtil; import org.apache.sling.servlets.post.AbstractPostResponse; import org.apache.sling.servlets.post.Modification; import org.apache.sling.servlets.post.impl.helper.RequestProperty; +import org.osgi.service.component.ComponentContext; /** * <p> @@ -74,30 +74,49 @@ import org.apache.sling.servlets.post.impl.helper.RequestProperty; * <dd>Failure</dd> * </dl> * <h4>Example</h4> - * + * * <code> * curl -Fprop1=value2 -Fproperty1=value1 http://localhost:8080/system/userManager/user/ieb.update.html * </code> */ -@Component (immediate=true, metatype=true, +@Component (metatype=true, label="%updateUser.post.operation.name", description="%updateUser.post.operation.description") @Service (value={ Servlet.class, UpdateUser.class -}) +}) @Properties ({ @Property (name="sling.servlet.resourceTypes", value="sling/user"), @Property (name="sling.servlet.methods", value="POST"), @Property (name="sling.servlet.selectors", - value="update") + value="update"), + @Property (name=AbstractAuthorizablePostServlet.PROP_DATE_FORMAT, + value={ + "EEE MMM dd yyyy HH:mm:ss 'GMT'Z", + "yyyy-MM-dd'T'HH:mm:ss.SSSZ", + "yyyy-MM-dd'T'HH:mm:ss", + "yyyy-MM-dd", + "dd.MM.yyyy HH:mm:ss", + "dd.MM.yyyy" + }) }) -public class UpdateUserServlet extends AbstractUserPostServlet +public class UpdateUserServlet extends AbstractUserPostServlet implements UpdateUser { private static final long serialVersionUID = 5874621724096106496L; + @Override + protected void activate(ComponentContext context) { + super.activate(context); + } + + @Override + protected void deactivate(ComponentContext context) { + super.deactivate(context); + } + /* * (non-Javadoc) * @see @@ -113,17 +132,17 @@ public class UpdateUserServlet extends AbstractUserPostServlet Session session = request.getResourceResolver().adaptTo(Session.class); updateUser(session, resource.getName(), - request.getRequestParameterMap(), + request.getRequestParameterMap(), changes); } - + /* (non-Javadoc) * @see org.apache.sling.jackrabbit.usermanager.UpdateUser#updateUser(javax.jcr.Session, java.lang.String, java.util.Map, java.util.List) */ public User updateUser(Session jcrSession, String name, Map<String, ?> properties, List<Modification> changes) throws RepositoryException { - + User user; UserManager userManager = AccessControlUtil.getUserManager(jcrSession); Authorizable authorizable = userManager.getAuthorizable(name); @@ -133,7 +152,7 @@ public class UpdateUserServlet extends AbstractUserPostServlet throw new ResourceNotFoundException( "User to update could not be determined"); } - + String userPath = AuthorizableResourceProvider.SYSTEM_USER_MANAGER_GROUP_PREFIX + user.getID(); @@ -144,7 +163,7 @@ public class UpdateUserServlet extends AbstractUserPostServlet // write content from form writeContent(jcrSession, user, reqProperties, changes); - + //SLING-2072 set the user as enabled or disabled if the request // has supplied the relevant properties String disabledParam = convertToString(properties.get(":disabled")); @@ -163,5 +182,5 @@ public class UpdateUserServlet extends AbstractUserPostServlet throw new RepositoryException("Failed to update user.", re); } return user; - } + } } -- To stop receiving notification emails like this one, please contact "commits@sling.apache.org" <commits@sling.apache.org>.