/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.smartitengineering.user.security.filters;
import java.io.IOException;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author modhu7
*/
class GetStatusWrapper extends HttpServletResponseWrapper {
private int status;
private String location;
private boolean redirectSet;
protected final transient Logger logger = LoggerFactory.getLogger(getClass());
GetStatusWrapper(HttpServletResponse response) {
super(response);
}
@Override
public void sendError(int sc) throws IOException {
setStatus(sc);
super.sendError(sc);
}
@Override
public void sendError(int sc, String msg) throws IOException {
setStatus(sc);
super.sendError(sc, msg);
}
@Override
public void setStatus(int sc) {
status = sc;
if (logger.isInfoEnabled()) {
logger.info("Setting status " + sc);
}
super.setStatus(sc);
}
@Override
public void sendRedirect(String location) throws IOException {
setStatus(SC_FOUND);
this.location = location;
if (logger.isInfoEnabled()) {
logger.info("Setting Location header to " + location);
}
redirectSet = true;
}
@Override
public void setResponse(ServletResponse response) {
logger.info("Setting response directly");
super.setResponse(response);
}
public int getStatus() {
return status;
}
public String getLocation() {
return location;
}
public void enableSendRedirect() throws IOException {
if (isRedirectSet()) {
super.sendRedirect(location);
}
}
public boolean isRedirectSet() {
return redirectSet;
}
}