Skip to content

Instantly share code, notes, and snippets.

@nhojpatrick
Last active April 30, 2016 11:14
Show Gist options
  • Save nhojpatrick/27f3e4062737600624c02174f67b55f5 to your computer and use it in GitHub Desktop.
Save nhojpatrick/27f3e4062737600624c02174f67b55f5 to your computer and use it in GitHub Desktop.
SessionCheckFilter
package tld.example.groupid;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InvalidClassException;
import java.io.NotSerializableException;
import java.io.ObjectOutputStream;
import java.util.Enumeration;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
public class SessionCheckFilter
implements Filter {
@Override
public void init(FilterConfig filterConfig)
throws ServletException {
}
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
final HttpServletRequest httpRequest = (HttpServletRequest) request;
final HttpSession session = httpRequest.getSession(false);
if (session != null) {
try {
final Enumeration<String> attributeNames = session.getAttributeNames();
while (attributeNames.hasMoreElements()) {
final String attributeName = attributeNames.nextElement();
final Object obj = session.getAttribute(attributeName);
try {
new ObjectOutputStream(new ByteArrayOutputStream()).writeObject(obj);
} catch (final InvalidClassException ice) {
System.out.println("InvalidClassException for Session Object " + attributeName);
ice.printStackTrace();
} catch (final NotSerializableException nse) {
System.out.println("NotSerializableException for Session Object " + attributeName);
nse.printStackTrace();
} catch (final IOException ioe) {
System.out.println("IOException for Session Object " + attributeName);
ioe.printStackTrace();
}
}
} catch (final Exception e) {
e.printStackTrace();
}
}
}
chain.doFilter(request, response);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment