【问题标题】:How to maintain user sessions in DropWizard?如何在 DropWizard 中维护用户会话?
【发布时间】:2013-11-27 01:07:02
【问题描述】:

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

我可以自己写,但我希望是熟食。请问上面的SessionHandler是我要找的吗?以及如何使用它?

【问题讨论】:

  • 如果你有解决方案,请写成答案

标签: session dropwizard


【解决方案1】:

使用下拉向导>0.7

environment.jersey().register(HttpSessionProvider.class);
environment.servlets().setSessionHandler(new SessionHandler());

然后在你的资源类中使用@Session注解。

【讨论】:

  • @AppleGrew 我想知道你们是否有提供者 gistand/或更多要分享的 gist。在我的情况下,我必须设置并检查一个不在服务器上的 cookie 值(它是一个 jwt 令牌)。
【解决方案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进行适配,
【解决方案3】:

REST 根据定义是无状态的,因此根本不应该使用任何会话。无论会话状态如何,相同的 URI 都应始终返回相同的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    相关资源
    最近更新 更多