package testcode.sessionfilter; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.filter.RequestContextFilter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class SpringUnSafeSessionFilter extends RequestContextFilter { @Override protected void doFilterInternal( HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws ServletException, IOException { ServletRequestAttributes attributes = new ServletRequestAttributes(req, res); try { if(1 + 1 == 2) { Authentication old = SecurityContextHolder.getContext().getAuthentication(); try { SecurityContextHolder.getContext().setAuthentication(null); super.doFilter(req, res, chain); } finally { SecurityContextHolder.getContext().setAuthentication(old); } } else { super.doFilter(req, res, chain); } } finally { attributes.requestCompleted(); } } }