Advertisement
pperez_awto

SecurityInterceptor

Mar 20th, 2020
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.88 KB | None | 0 0
  1. package cl.awto.microservice.poinvoice.interceptor.handler;
  2.  
  3. import cl.awto.microservice.msmodel.domain.model.microservice.AwMicroserviceEntity;
  4. import cl.awto.microservice.poinvoice.domain.enums.interceptor.StatusResponse;
  5. import cl.awto.microservice.poinvoice.domain.exceptions.SecurityException;
  6. import cl.awto.microservice.poinvoice.domain.enums.microservice.MicroserviceName;
  7. import cl.awto.microservice.poinvoice.repository.microservice.MicroserviceRepository;
  8. import cl.awto.microservice.poinvoice.domain.common.AwtoUtils;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.stereotype.Component;
  12. import org.springframework.web.servlet.HandlerInterceptor;
  13.  
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16.  
  17. @Component
  18. public class SecurityInterceptor implements HandlerInterceptor {
  19.     private final static String MS_NAME = MicroserviceName.MSPURCHASEORDER.name();
  20.     private final static String HEADER_NAME = "x-api-key";
  21.  
  22.     private MicroserviceRepository microserviceRepository;
  23.  
  24.     public SecurityInterceptor(MicroserviceRepository microserviceRepository) {
  25.         this.microserviceRepository = microserviceRepository;
  26.     }
  27.  
  28.     @Override
  29.     public boolean preHandle(
  30.         HttpServletRequest request,
  31.         HttpServletResponse response,
  32.         Object handler
  33.     ) throws SecurityException {
  34.         AwMicroserviceEntity awMicroserviceEntity = microserviceRepository.findByName(MS_NAME);
  35.  
  36.         String token = request.getHeader(HEADER_NAME);
  37.  
  38.         if (AwtoUtils.isEmpty(token))
  39.             throw new SecurityException(StatusResponse.TOKEN_NOT_FOUND);
  40.         if (!awMicroserviceEntity.getApikey().equals(token))
  41.             throw new SecurityException(StatusResponse.BAD_TOKEN);
  42.  
  43.         return true;
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement