13 Ocak 2019 Pazar

SpringMVC OncePerRequestFilter Sınıfı

Tanımlama
Şöyle yaparız.
@Component
@Order
public class LogFilter extends OncePerRequestFilter {
  ...
}
doFilterInternal metodu
Şöyle yaparız.
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
  FilterChain filterChain)
  throws ServletException, IOException {
  
  Enumeration<String> ss = request.getHeaderNames();
  while (ss.hasMoreElements()) {
  ...
  }
}
shouldNotFilter metodu
Örnek
Şöyle yaparız.
protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException {
  String url = request.getRequestURL().toString();
  return isResourceUrl(url);
}

private boolean isResourceUrl(String url) {
  boolean isResourceUrl = false;
  List<String> resourceRequests = Arrays.asList(
    "/css/", "/js/", "/scss/", "/fonts/", "/emails/",
    ".css", ".js", ".scss", ".eot", ".svg", ".ttf", ".woff", ".otf", ".ico", ".png");
  for (String resourceRequest : resourceRequests) {
    if (url.contains(resourceRequest)) {
      isResourceUrl = true;
    }
  }
  return isResourceUrl;
}

Hiç yorum yok:

Yorum Gönder