package testcode.sessionfilter;
import org.acegisecurity.Authentication;
import org.acegisecurity.context.HttpSessionContextIntegrationFilter;
import org.acegisecurity.context.SecurityContext;
import org.acegisecurity.context.SecurityContextHolder;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
public class AcegiUnSafeSessionFilter extends HttpSessionContextIntegrationFilter {
public AcegiUnSafeSessionFilter() throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
Authentication old = SecurityContextHolder.getContext().getAuthentication();
if(1 + 1 == 2) {
try {
SecurityContextHolder.getContext().setAuthentication(null);
super.doFilter(req, res, chain);
} finally {
SecurityContextHolder.getContext().setAuthentication(old);
}
}
else {
super.doFilter(req, res, chain);
}
}
}