https://scriptrunner.adaptavist.com/latest/confluence/rest-endpoints.html#_configuration
This works
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate import groovy.json.JsonBuilder import groovy.transform.BaseScript import javax.ws.rs.core.MultivaluedMap import javax.ws.rs.core.Response import com.atlassian.sal.api.component.ComponentLocator import bucket.user.UserAccessor @BaseScript CustomEndpointDelegate delegate def userAccessor = ComponentLocator.getComponent(UserAccessor) user( httpMethod: "GET", groups: ["confluence-administrators"] ) { // validate we have username as a url parameter // extraPath is already available to use def extraPath = extraPath as String assert extraPath =~ "^/[a-zA-Z]+" def username = extraPath.split("/").last() def user = userAccessor.getUser(username) // user must exist in Confluence if (!user) { return Response.serverError().entity([error: "User $username does not exist"]).build() } def userResponse = [ username: user.name, fullname: user.fullName, email: user.email ] return Response.ok(new JsonBuilder(userResponse).toString()).build() }
Outpuy:
jarvis:bin npn$ curl -X GET -u admin:Welcome1 http://localhost:8090/rest/scriptrunner/latest/custom/user/admin {"username":"admin","fullname":"admin","email":"npn@netic.dk"}jarvis:bin npn$ jarvis:bin npn$