X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Futil%2FContentLengthInterceptor.java;fp=src%2Fmain%2Fjava%2Fcom%2Fatt%2Fnsa%2Fdmaap%2Futil%2FContentLengthInterceptor.java;h=b03eb5b1d0967a70d264fee4d16beb8e5be9f323;hb=357b7483c755ad7e5d67d48c9f6013a64ee3fdd3;hp=4ddc54a27be37df1830e673865cebb6c48623338;hpb=f16b3cfc7dc3fcb0b946643709dc7e738c91008a;p=dmaap%2Fmessagerouter%2Fmessageservice.git diff --git a/src/main/java/com/att/nsa/dmaap/util/ContentLengthInterceptor.java b/src/main/java/org/onap/dmaap/util/ContentLengthInterceptor.java similarity index 97% rename from src/main/java/com/att/nsa/dmaap/util/ContentLengthInterceptor.java rename to src/main/java/org/onap/dmaap/util/ContentLengthInterceptor.java index 4ddc54a..b03eb5b 100644 --- a/src/main/java/com/att/nsa/dmaap/util/ContentLengthInterceptor.java +++ b/src/main/java/org/onap/dmaap/util/ContentLengthInterceptor.java @@ -19,120 +19,120 @@ * ECOMP is a trademark and service mark of AT&T Intellectual Property. * *******************************************************************************/ -package com.att.nsa.dmaap.util; - -import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.apache.http.HttpStatus; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import org.json.JSONException; -import org.json.JSONObject; -import org.springframework.stereotype.Component; -import org.onap.dmaap.dmf.mr.CambriaApiException; -import org.onap.dmaap.dmf.mr.exception.DMaaPResponseCode; -import org.onap.dmaap.dmf.mr.exception.ErrorResponse; -import ajsc.beans.interceptors.AjscInterceptor; - -/** - * AJSC Intercepter implementation of ContentLengthFilter - */ -@Component -public class ContentLengthInterceptor implements AjscInterceptor{ - - - private String defLength; - //private Logger log = Logger.getLogger(ContentLengthInterceptor.class.toString()); - private static final EELFLogger log = EELFManager.getInstance().getLogger(ContentLengthInterceptor.class); - - - /** - * Intercepter method to intercept requests before processing - */ - @Override - public boolean allowOrReject(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse, - Map map) throws Exception { - - log.info("inside Interceptor allowOrReject content length checking before pub/sub"); - - JSONObject jsonObj = null; - int requestLength = 0; - setDefLength(System.getProperty("maxcontentlength")); - try { - // retrieving content length from message header - - if (null != httpservletrequest.getHeader("Content-Length")) { - requestLength = Integer.parseInt(httpservletrequest.getHeader("Content-Length")); - } - // retrieving encoding from message header - String transferEncoding = httpservletrequest.getHeader("Transfer-Encoding"); - // checking for no encoding, chunked and requestLength greater then - // default length - if (null != transferEncoding && !(transferEncoding.contains("chunked")) - && (requestLength > Integer.parseInt(getDefLength()))) { - jsonObj = new JSONObject().append("defaultlength", getDefLength()) - .append("requestlength", requestLength); - log.error("message length is greater than default"); - throw new CambriaApiException(jsonObj); - } - else if (null == transferEncoding && (requestLength > Integer.parseInt(getDefLength()))) - { - jsonObj = new JSONObject().append("defaultlength", getDefLength()).append( - "requestlength", requestLength); - log.error("Request message is not chunked or request length is greater than default length"); - throw new CambriaApiException(jsonObj); - - - } - else - { - //chain.doFilter(req, res); - return true; - } - - } catch (CambriaApiException | NumberFormatException | JSONException e) { - - log.info("Exception obj--"+e); + package org.onap.dmaap.util; + +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.http.HttpStatus; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import org.json.JSONException; +import org.json.JSONObject; +import org.springframework.stereotype.Component; +import org.onap.dmaap.dmf.mr.CambriaApiException; +import org.onap.dmaap.dmf.mr.exception.DMaaPResponseCode; +import org.onap.dmaap.dmf.mr.exception.ErrorResponse; +import ajsc.beans.interceptors.AjscInterceptor; + +/** + * AJSC Intercepter implementation of ContentLengthFilter + */ +@Component +public class ContentLengthInterceptor implements AjscInterceptor{ + + + private String defLength; + //private Logger log = Logger.getLogger(ContentLengthInterceptor.class.toString()); + private static final EELFLogger log = EELFManager.getInstance().getLogger(ContentLengthInterceptor.class); + + + /** + * Intercepter method to intercept requests before processing + */ + @Override + public boolean allowOrReject(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse, + Map map) throws Exception { + + log.info("inside Interceptor allowOrReject content length checking before pub/sub"); + + JSONObject jsonObj = null; + int requestLength = 0; + setDefLength(System.getProperty("maxcontentlength")); + try { + // retrieving content length from message header + + if (null != httpservletrequest.getHeader("Content-Length")) { + requestLength = Integer.parseInt(httpservletrequest.getHeader("Content-Length")); + } + // retrieving encoding from message header + String transferEncoding = httpservletrequest.getHeader("Transfer-Encoding"); + // checking for no encoding, chunked and requestLength greater then + // default length + if (null != transferEncoding && !(transferEncoding.contains("chunked")) + && (requestLength > Integer.parseInt(getDefLength()))) { + jsonObj = new JSONObject().append("defaultlength", getDefLength()) + .append("requestlength", requestLength); + log.error("message length is greater than default"); + throw new CambriaApiException(jsonObj); + } + else if (null == transferEncoding && (requestLength > Integer.parseInt(getDefLength()))) + { + jsonObj = new JSONObject().append("defaultlength", getDefLength()).append( + "requestlength", requestLength); + log.error("Request message is not chunked or request length is greater than default length"); + throw new CambriaApiException(jsonObj); + + + } + else + { + //chain.doFilter(req, res); + return true; + } + + } catch (CambriaApiException | NumberFormatException | JSONException e) { + + log.info("Exception obj--"+e); log.error("message size is greater then default"+e.getMessage()); String messg=e.toString(); if(jsonObj!=null){ messg=jsonObj.toString(); - } - ErrorResponse errRes = new ErrorResponse(HttpStatus.SC_REQUEST_TOO_LONG, - DMaaPResponseCode.MSG_SIZE_EXCEEDS_MSG_LIMIT.getResponseCode(), System.getProperty("msg_size_exceeds") - + messg); - log.info(errRes.toString()); - - - map.put(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"test"); + } + ErrorResponse errRes = new ErrorResponse(HttpStatus.SC_REQUEST_TOO_LONG, + DMaaPResponseCode.MSG_SIZE_EXCEEDS_MSG_LIMIT.getResponseCode(), System.getProperty("msg_size_exceeds") + + messg); + log.info(errRes.toString()); + + + map.put(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"test"); httpservletresponse.setStatus(HttpStatus.SC_REQUEST_TOO_LONG); - if(httpservletresponse.getOutputStream()!=null){ + if(httpservletresponse.getOutputStream()!=null){ httpservletresponse.getOutputStream().write(errRes.toString().getBytes()); - } - return false; - } - - - - } - - - /** - * Get Default Content Length - * @return defLength - */ - public String getDefLength() { - return defLength; - } - /** - * Set Default Content Length - * @param defLength - */ - public void setDefLength(String defLength) { - this.defLength = defLength; - } - - - -} + } + return false; + } + + + + } + + + /** + * Get Default Content Length + * @return defLength + */ + public String getDefLength() { + return defLength; + } + /** + * Set Default Content Length + * @param defLength + */ + public void setDefLength(String defLength) { + this.defLength = defLength; + } + + + +}