diff --git a/src/test/java/es/uvigo/esei/daa/filters/AuthorizationFilter.java b/src/test/java/es/uvigo/esei/daa/filters/AuthorizationFilter.java index b2144df2ce1c5c1aaebd61932c0334430991cddc..49a932d4af9278269e00faab1f2504fb5b5b876d 100644 --- a/src/test/java/es/uvigo/esei/daa/filters/AuthorizationFilter.java +++ b/src/test/java/es/uvigo/esei/daa/filters/AuthorizationFilter.java @@ -59,6 +59,13 @@ public class AuthorizationFilter implements ContainerRequestFilter { } else { requestContext.setSecurityContext(new UserSecurityContext(user)); } + + if (isPetsPath(requestContext) && !user.getRole().equals("ADMIN")) { + requestContext.abortWith(createResponse()); + } else { + requestContext.setSecurityContext(new UserSecurityContext(user)); + } + } else { requestContext.abortWith(createResponse()); } @@ -76,6 +83,11 @@ public class AuthorizationFilter implements ContainerRequestFilter { return !pathSegments.isEmpty() && pathSegments.get(0).getPath().equals("people"); } + private static boolean isPetsPath(ContainerRequestContext context) { + final List pathSegments = context.getUriInfo().getPathSegments(); + return !pathSegments.isEmpty() && pathSegments.get(0).getPath().equals("pets"); + } + private static Response createResponse() { return Response.status(Status.UNAUTHORIZED) .header(HttpHeaders.WWW_AUTHENTICATE, "Basic realm=\"DAAExample\"")