如何在DropWizard中维护用户会话?

App*_*rew 8 session dropwizard

我正在寻找一个持久的会话管理器,它将会话保存在可以与DropWizard一起使用的文件系统(如PHP)上.我看到有一个Environment.getSessionHandler(),但我看不到它的文档.

我可以自己写,但我希望能做一顿熟食.上面的SessionHandler会不会是我要找的?以及如何使用它?

Toi*_*lal 5

随着dropwizard> 0.7

environment.jersey().register(HttpSessionProvider.class);
environment.servlets().setSessionHandler(new SessionHandler());
Run Code Online (Sandbox Code Playgroud)

然后@Session在资源类中使用注释.


小智 2

DropWizard 不支持开箱即用的会话,并且根据作者在 google 群组中的帖子,他们也不打算在将来支持它。

目前唯一的方法是您org.eclipse.jetty.server.session.SessionHandler自己实现或寻找已经存在的东西,然后调用environment.setSessionHandler(...)

如果您需要此信息,DW 0.6.2 使用 Jetty 8.1.10

您还可以查看http://cosmo-opticon.net/blog/2013/1/23/session-based-security-in-dropwizard,看看是否可以重用其中的一些内容。

  • DW>0.8 现在使用 Jersey 2 并且注入框架已更改(HK2)。本文已过时,需要针对DW>0.8进行适配, (4认同)