Class UpdateUserServlet

java.lang.Object
jakarta.servlet.GenericServlet
org.apache.sling.api.servlets.SlingJakartaSafeMethodsServlet
org.apache.sling.api.servlets.SlingJakartaAllMethodsServlet
All Implemented Interfaces:
jakarta.servlet.Servlet, jakarta.servlet.ServletConfig, Serializable, UpdateUser

public class UpdateUserServlet extends AbstractAuthorizablePostServlet implements UpdateUser

Sling Post Operation implementation for updating a user in the jackrabbit UserManager.

Rest Service Description

Updates a users properties. Maps on to nodes of resourceType sling/users like /rep:system/rep:userManager/rep:users mapped to a resource url /system/userManager/user/ieb. This servlet responds at /system/userManager/user/ieb.update.html

Methods

  • POST

Post Parameters

*
Any additional parameters become properties of the user node (optional)
*@Delete
Delete the property eg prop3@Delete means prop3 will be deleted (optional)

Response

200
Success, a redirect is sent to the users resource locator. The redirect comes with HTML describing the status.
404
The resource was not found
500
Failure

Example

curl -Fprop1=value2 -Fproperty1=value1 http://localhost:8080/system/userManager/user/ieb.update.html
See Also:
  • Constructor Details

    • UpdateUserServlet

      public UpdateUserServlet()
  • Method Details

    • activate

      protected void activate(Map<String,Object> props)
      Overrides:
      activate in class AbstractAuthorizablePostServlet
    • deactivate

      protected void deactivate()
      Overrides:
      deactivate in class AbstractAuthorizablePostServlet
    • bindPostResponseCreator

      protected void bindPostResponseCreator(org.apache.sling.servlets.post.JakartaPostResponseCreator creator, Map<String,Object> properties)
      Overridden since the @Reference annotation is not inherited from the super method
      Overrides:
      bindPostResponseCreator in class AbstractPostServlet
      See Also:
    • unbindPostResponseCreator

      protected void unbindPostResponseCreator(org.apache.sling.servlets.post.JakartaPostResponseCreator creator, Map<String,Object> properties)
      Description copied from class: AbstractPostServlet
      Unbind a post response creator
      Overrides:
      unbindPostResponseCreator in class AbstractPostServlet
    • handleOperation

      protected void handleOperation(org.apache.sling.api.SlingJakartaHttpServletRequest request, org.apache.sling.servlets.post.JakartaPostResponse response, List<org.apache.sling.servlets.post.Modification> changes) throws javax.jcr.RepositoryException
      Description copied from class: AbstractPostServlet
      Extending Servlet should implement this operation to do the work
      Specified by:
      handleOperation in class AbstractPostServlet
      Parameters:
      request - the sling http request to process
      response - the response
      changes - the changes to report
      Throws:
      javax.jcr.RepositoryException - in case of exceptions during the operation
    • updateUser

      public org.apache.jackrabbit.api.security.user.User updateUser(javax.jcr.Session jcrSession, String name, Map<String,?> properties, List<org.apache.sling.servlets.post.Modification> changes) throws javax.jcr.RepositoryException
      Description copied from interface: UpdateUser
      Update a user in the repository
      Specified by:
      updateUser in interface UpdateUser
      Parameters:
      jcrSession - the JCR session of the user updating the user
      name - The name of the user to update (required)
      properties - Extra properties to update on the user. The entry values should be either a String or String[] (optional)
      changes - The list of changes for this operation (optional)
      Returns:
      the user that was updated or null if not found
      Throws:
      javax.jcr.RepositoryException - if user can't be updated