Last active
April 30, 2016 11:14
-
-
Save nhojpatrick/27f3e4062737600624c02174f67b55f5 to your computer and use it in GitHub Desktop.
SessionCheckFilter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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