Skip to content

Instantly share code, notes, and snippets.

@yarinb
Created June 1, 2012 08:11
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yarinb/2850188 to your computer and use it in GitHub Desktop.
Save yarinb/2850188 to your computer and use it in GitHub Desktop.
add SessionManager to Dropwizard's Jetty
private Handler createExternalServlet(ImmutableMap<String, ServletHolder> servlets,
ImmutableMultimap<String, FilterHolder> filters,
ImmutableSet<EventListener> listeners) {
// set ServletContextHandler.SESSIONS option
final ServletContextHandler handler = new ServletContextHandler(ServletContextHandler.SESSIONS);
// set a default SessionHandler
handler.setSessionHandler(new SessionHandler());
handler.addFilter(ThreadNameFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
handler.setBaseResource(Resource.newClassPathResource("."));
for (ImmutableMap.Entry<String, ServletHolder> entry : servlets.entrySet()) {
handler.addServlet(entry.getValue(), entry.getKey());
}
for (ImmutableMap.Entry<String, FilterHolder> entry : filters.entries()) {
handler.addFilter(entry.getValue(), entry.getKey(), EnumSet.of(DispatcherType.REQUEST));
}
for (EventListener listener : listeners) {
handler.addEventListener(listener);
}
for (Map.Entry<String, String> entry : config.getContextParameters().entrySet()) {
handler.setInitParameter( entry.getKey(), entry.getValue() );
}
handler.setConnectorNames(new String[]{"main"});
return wrapHandler(handler);
}
@GET
@Path("/{id}")
public UserView getPerson(@Context HttpServletRequest request, @PathParam("id") Long id) {
HttpSession session = request.getSession(true);
String token = (String) session.getAttribute("token");
if (token == null) {
String value = TokenGenerator.generate();
session.setAttribute("token", value);
}
return new UserView(dao.find(id));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment