Skip to content

Instantly share code, notes, and snippets.

@LeifWarner
Created August 27, 2012 04:19
Show Gist options
  • Save LeifWarner/3485500 to your computer and use it in GitHub Desktop.
Save LeifWarner/3485500 to your computer and use it in GitHub Desktop.
package org.scalatra.servlet
import java.io.{NotSerializableException, OutputStream, ObjectOutputStream}
import javax.servlet.http.{HttpSessionAttributeListener, HttpSessionBindingEvent}
object NullOut extends OutputStream {
def write(b: Int) {}
}
object SessionSerializingListener extends HttpSessionAttributeListener {
//val oos = new ObjectOutputStream(System.out)
val oos = new ObjectOutputStream(NullOut)
def attributeAdded(event: HttpSessionBindingEvent) {
serializeSession(event)
}
def attributeRemoved(event: HttpSessionBindingEvent) {
serializeSession(event)
}
def attributeReplaced(event: HttpSessionBindingEvent) {
serializeSession(event)
}
def serializeSession(event: HttpSessionBindingEvent) {
try {
oos.writeObject(event.getValue)
} catch {
case e: NotSerializableException =>
sys.error("Can't serialize session key '" + event.getName + "' value of type " + e.getMessage)
}
}
}
@LeifWarner
Copy link
Author

servletContextHandler.getSessionHandler.addEventListener(SessionSerializingListener)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment