Response object can be modified only once.
Change-Id: I753b01ca6e8bfd63c09a4d91f76216341a865160
Issue-ID: AAI-32
Signed-off-by: Pavel Paroulek <pavel.paroulek@orange.com>
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import static org.onap.aai.config.aaf.ResponseFormatter.errorResponse;
-
/**
* AAF authorization filter
*/
filterChain.doFilter(request, response);
}
if(!request.isUserInRole(permission)){
- errorResponse(request, response);
+ response.setStatus(403);
}else{
filterChain.doFilter(request,response);
}
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException {
if(!request.getRequestURI().matches("^.*/util/echo$")){
cadiFilter.doFilter(request, response, filterChain);
- if(response.getStatus() >=400 && response.getStatus() < 500){
+ if(response.getStatus() == 401 && response.getStatus() == 403){
errorResponse(request, response);
}
} else {
String accept = request.getHeader(ACCEPT_HEADER) == null ? MediaType.APPLICATION_XML : request.getHeader(ACCEPT_HEADER);
AAIException aaie = new AAIException("AAI_3300");
response.setStatus(aaie.getErrorObject().getHTTPResponseCode().getStatusCode());
- response.getWriter().write(ErrorLogHelper.getRESTAPIErrorResponse(Collections.singletonList(MediaType.valueOf(accept)), aaie, new ArrayList<>()));
- response.getWriter().flush();
- response.getWriter().close();
+ response.resetBuffer();
+ response.getOutputStream().print(ErrorLogHelper.getRESTAPIErrorResponse(Collections.singletonList(MediaType.valueOf(accept)), aaie, new ArrayList<>()));
+ response.flushBuffer();
}
}