Guest User

Untitled

a guest
Aug 25th, 2018
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. package com.gmail.brunodiazmartin5.rs.ws;
  2.  
  3. import java.io.IOException;
  4. import java.util.List;
  5. import java.util.StringTokenizer;
  6. import javax.ws.rs.container.ContainerRequestContext;
  7. import javax.ws.rs.container.ContainerRequestFilter;
  8. import javax.ws.rs.core.Response;
  9.  
  10. import org.glassfish.jersey.internal.util.Base64;
  11.  
  12.  
  13. public class SecuredFilter implements ContainerRequestFilter {
  14.  
  15. private static final String AUTHORIZATION_HEADER_KEY = "Authorization";
  16. private static final String AUTHORIZATION_HEADER_PREFIX = "Basic";
  17. private static final String SECURED_URL_PREFIX = "secured";
  18.  
  19. @Override
  20. public void filter(ContainerRequestContext requestContext) throws IOException {
  21. if(requestContext.getUriInfo().getPath().contains(SECURED_URL_PREFIX)) {
  22. List<String> authHeader = requestContext.getHeaders().get(AUTHORIZATION_HEADER_KEY);
  23.  
  24. if (authHeader != null && authHeader.size() > 0){
  25. String authToken = authHeader.get(0);
  26. authToken = authToken.replaceFirst(AUTHORIZATION_HEADER_PREFIX, "");
  27. String decodeString = Base64.decodeAsString(authToken);
  28.  
  29. StringTokenizer tokenizer = new StringTokenizer(decodeString, ":");
  30. String username = tokenizer.nextToken();
  31. String password = tokenizer.nextToken();
  32.  
  33. if ("admin".equals(username) && "admin".equals(password)) {
  34. return;
  35. }
  36.  
  37. Response unauthorizedStatus = Response
  38. .status(Response.Status.UNAUTHORIZED)
  39. .encoding("No puedes acceder a recurso solicitado")
  40. .build();
  41.  
  42. requestContext.abortWith(unauthorizedStatus);
  43.  
  44. }
  45. }
  46. }
  47.  
  48. }
  49.  
  50. package com.gmail.brunodiazmartin5.rs.ws;
  51.  
  52. import javax.ws.rs.GET;
  53. import javax.ws.rs.Path;
  54. import javax.ws.rs.Produces;
  55. import javax.ws.rs.core.MediaType;
  56.  
  57. @Path("secured")
  58. public class SecuredService {
  59.  
  60. @GET
  61. @Path("message")
  62. @Produces(MediaType.TEXT_PLAIN)
  63. public String securedMethod(){
  64. return "Esta API necesita login";
  65. }
  66. }
Add Comment
Please, Sign In to add comment