Untitled

From Sweet Guinea Pig, 7 Years ago, written in Plain Text, viewed 2 times.
URL https://paste.blessuren.de/view/91c0611d Embed
Download Paste or View Raw
  1. package net.hellmann.platform.authproxy.proxy.filter;
  2.  
  3. import com.netflix.zuul.ZuulFilter;
  4. import com.netflix.zuul.context.RequestContext;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.stereotype.Component;
  8.  
  9. import javax.servlet.http.HttpServletRequest;
  10. import java.util.*;
  11.  
  12. import static net.hellmann.platform.authproxy.proxy.header.Header.*;
  13. import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.PRE_TYPE;
  14.  
  15. ;
  16.  
  17. @Component
  18. public class RemoveDangerousHeader extends ZuulFilter {
  19.  
  20.     private static final Logger LOGGER = LoggerFactory.getLogger(RemoveDangerousHeader.class);
  21.  
  22.  
  23.     private final static List<String> IGNORED_HEADER = Arrays.asList("x-auth-secret", "x-auth-cn",
  24.             HELLMANN_USER, HELLMANN_REQUEST_ID, SERVICE_TO_SERVICE,
  25.             HELLMANN_USER_HEADER, HELLMANN_USER_HEADER_SIG,
  26.             PERMISSIONS_FOR_USER, PERMISSIONS_FOR_USER_SIG, SECRET_KEY);
  27.  
  28.     @Override
  29.     public String filterType() {
  30.         return PRE_TYPE;
  31.     }
  32.  
  33.     @Override
  34.     public int filterOrder() {
  35.         // RUN EARLY BEFORE ROUTE FILTER ADD ALL SECURITY HEADER
  36.         return 0;
  37.     }
  38.  
  39.  
  40.     @Override
  41.     public boolean shouldFilter() {
  42.         RequestContext context = RequestContext.getCurrentContext();
  43.         return context.getThrowable() == null
  44.                 && (context.getZuulRequestHeaders() != null && !context.getZuulRequestHeaders().isEmpty());
  45.     }
  46.  
  47.     @Override
  48.     public Object run() {
  49.         RequestContext context = RequestContext.getCurrentContext();
  50.         HttpServletRequest request = context.getRequest();
  51.         Map<String, String> filteredResponseHeaders = new HashMap<>();
  52.         Map<String, String> zuulRequestHeaders = context.getZuulRequestHeaders();
  53.         if (zuulRequestHeaders != null) {
  54.             for (String headerKey : zuulRequestHeaders.keySet()) {
  55.                 if (!IGNORED_HEADER.contains(headerKey)) {
  56.                     filteredResponseHeaders.put(headerKey, zuulRequestHeaders.get(headerKey));
  57.                 } else {
  58.                     LOGGER.info("Remove outside header " + headerKey + " value : " + zuulRequestHeaders.get(headerKey));
  59.                 }
  60.             }
  61.         }
  62.         context.remove("zuulRequestHeaders");
  63.         context.put("zuulRequestHeaders", filteredResponseHeaders);
  64.         return null;
  65.     }
  66.  
  67.  
  68. }
  69.  

Reply to "Untitled"

Here you can reply to the paste above