2017-05-18 2 views
0

Ich habe eine Java-basierte Server-Anwendung mit Maven für die Abhängigkeitsverwaltung und einen Tomcat-Server, um es zu hosten. Ich habe eine Reihe von IoT-Geräten, die ständig verschiedene Arten von Nutzlasten senden. Bitte beachten Sie, dass die Nutzdaten in Größen von 1 MB bis 80 MB variieren. Also möchte ich die Verwendung von Daten für jedes Gerät verfolgen.Untersuchen der Payloads aller Anfragen an den Server

Anstatt Nutzlastgrößenprüfungen bei jeder einzelnen API zu schreiben, kann ich einen Filter oder Interceptor schreiben, um Payloads für alle API-Anfragen zu untersuchen? Wenn die Payload höher als 80 MB ist, möchte ich die Payload ablehnen.

Bitte lassen Sie mich wissen, wenn es sowieso darum geht.

Antwort

0

Sie können mit einem Filter, so etwas wie dies tun:

public class PayLoadCheckFilter implements Filter { 

    @Override 
    public void init(FilterConfig filterConfig) throws ServletException { 

    } 

    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { 
     if (request.getContentLength() > 80e+07) { 
      ((HttpServletResponse) response).setStatus(503); 
     } 
     else { 
      filterChain.doFilter(request, response); 
     } 
    } 

    @Override 
    public void destroy() { 

    } 

Siehe here, wie Sie den Filter auf den web.xml hinzuzufügen.

Verwandte Themen