[New] Implemented Rest API for user management
This commit is contained in:
parent
3136049bda
commit
86895c7aa5
|
@ -1 +1 @@
|
|||
Subproject commit eeb3356372500e6413af613079c7ec71bb1f6e4c
|
||||
Subproject commit 5ef43eaebe670b0cf3f8ea1ccbc251b2c48f3dca
|
|
@ -9,6 +9,7 @@ import javax.ws.rs.ext.ExceptionMapper;
|
|||
import javax.ws.rs.ext.Provider;
|
||||
|
||||
import li.strolch.exception.StrolchAccessDeniedException;
|
||||
import li.strolch.rest.model.Result;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -44,8 +45,6 @@ public class StrolchRestfulExceptionMapper implements ExceptionMapper<Exception>
|
|||
return Response.status(Status.FORBIDDEN).entity(sb.toString()).type(MediaType.TEXT_PLAIN).build();
|
||||
}
|
||||
|
||||
String exceptionMessage = StringHelper.formatExceptionMessage(ex);
|
||||
return Response.status(Status.INTERNAL_SERVER_ERROR).entity(exceptionMessage).type(MediaType.TEXT_PLAIN)
|
||||
.build();
|
||||
return Response.serverError().entity(new Result(ex)).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
|
@ -96,8 +96,8 @@ public class PrivilegeRolesService {
|
|||
try {
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.addRole(cert, newRole);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
RoleRep role = privilegeHandler.addRole(cert, newRole);
|
||||
return Response.ok(role, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -107,9 +107,6 @@ public class PrivilegeRolesService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -127,8 +124,8 @@ public class PrivilegeRolesService {
|
|||
.type(MediaType.APPLICATION_JSON).build();
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.replaceRole(cert, updatedRole);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
RoleRep role = privilegeHandler.replaceRole(cert, updatedRole);
|
||||
return Response.ok(role, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -138,9 +135,6 @@ public class PrivilegeRolesService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -153,8 +147,8 @@ public class PrivilegeRolesService {
|
|||
try {
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.removeRole(cert, rolename);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
RoleRep role = privilegeHandler.removeRole(cert, rolename);
|
||||
return Response.ok(role, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -164,9 +158,6 @@ public class PrivilegeRolesService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -180,8 +171,8 @@ public class PrivilegeRolesService {
|
|||
try {
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.addOrReplacePrivilegeOnRole(cert, rolename, privilegeRep);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
RoleRep updatedRole = privilegeHandler.addOrReplacePrivilegeOnRole(cert, rolename, privilegeRep);
|
||||
return Response.ok(updatedRole, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -191,9 +182,6 @@ public class PrivilegeRolesService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -207,8 +195,8 @@ public class PrivilegeRolesService {
|
|||
try {
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.removePrivilegeFromRole(cert, rolename, privilege);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
RoleRep updatedRole = privilegeHandler.removePrivilegeFromRole(cert, rolename, privilege);
|
||||
return Response.ok(updatedRole, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -218,41 +206,6 @@ public class PrivilegeRolesService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Path("{rolename}/privileges/{privilege}")
|
||||
public Response addOrReplacePrivilegeOnRole(@PathParam("rolename") String rolename,
|
||||
@PathParam("privilege") String privilege, PrivilegeRep privilegeRep, @Context HttpServletRequest request) {
|
||||
Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE);
|
||||
try {
|
||||
|
||||
if (!privilege.equals(privilegeRep.getName()))
|
||||
return Response.serverError()
|
||||
.entity(new Result("Path privilege and data do not have same privilege name!"))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.addOrReplacePrivilegeOnRole(cert, rolename, privilegeRep);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.UNAUTHORIZED).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (PrivilegeException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -109,8 +109,8 @@ public class PrivilegeUsersService {
|
|||
try {
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.addUser(cert, newUser, null);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
UserRep user = privilegeHandler.addUser(cert, newUser, null);
|
||||
return Response.ok(user, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -120,9 +120,6 @@ public class PrivilegeUsersService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -135,8 +132,8 @@ public class PrivilegeUsersService {
|
|||
try {
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.removeUser(cert, username);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
UserRep user = privilegeHandler.removeUser(cert, username);
|
||||
return Response.ok(user, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -146,9 +143,6 @@ public class PrivilegeUsersService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,8 +160,8 @@ public class PrivilegeUsersService {
|
|||
.type(MediaType.APPLICATION_JSON).build();
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.updateUser(cert, updatedFields);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
UserRep updatedUser = privilegeHandler.updateUser(cert, updatedFields);
|
||||
return Response.ok(updatedUser, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -177,9 +171,6 @@ public class PrivilegeUsersService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -193,8 +184,8 @@ public class PrivilegeUsersService {
|
|||
try {
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.addRoleToUser(cert, username, rolename);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
UserRep updatedUser = privilegeHandler.addRoleToUser(cert, username, rolename);
|
||||
return Response.ok(updatedUser, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -204,9 +195,6 @@ public class PrivilegeUsersService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -220,8 +208,8 @@ public class PrivilegeUsersService {
|
|||
try {
|
||||
|
||||
PrivilegeHandler privilegeHandler = getPrivilegeHandler(cert, true);
|
||||
privilegeHandler.removeRoleFromUser(cert, username, rolename);
|
||||
return Response.ok(new Result(), MediaType.APPLICATION_JSON).build();
|
||||
UserRep updatedUser = privilegeHandler.removeRoleFromUser(cert, username, rolename);
|
||||
return Response.ok(updatedUser, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
} catch (AccessDeniedException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
|
@ -231,9 +219,6 @@ public class PrivilegeUsersService {
|
|||
logger.error(e.getMessage(), e);
|
||||
return Response.status(Status.FORBIDDEN).entity(new Result(e.getMessage()))
|
||||
.type(MediaType.APPLICATION_JSON).build();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
return Response.serverError().entity(new Result(e.getMessage())).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,10 +32,18 @@ public class Result {
|
|||
@XmlAttribute(name = "msg")
|
||||
private String msg;
|
||||
|
||||
@XmlAttribute(name = "exceptionMsg")
|
||||
private String exceptionMsg;
|
||||
|
||||
public Result(String msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
public Result(Exception e) {
|
||||
this.msg = StringHelper.isEmpty(e.getMessage()) ? e.getClass().getName() : e.getMessage();
|
||||
this.exceptionMsg = StringHelper.formatExceptionMessage(e);
|
||||
}
|
||||
|
||||
public Result() {
|
||||
this.msg = StringHelper.DASH;
|
||||
}
|
||||
|
@ -47,4 +55,12 @@ public class Result {
|
|||
public void setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
public String getExceptionMsg() {
|
||||
return exceptionMsg;
|
||||
}
|
||||
|
||||
public void setExceptionMsg(String exceptionMsg) {
|
||||
this.exceptionMsg = exceptionMsg;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue