当前位置: 首页 > 知识库问答 >
问题:

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

龙承德
2023-03-14

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

我可以写我自己的,但我希望有一个煮熟的饭。上面的会话句柄是我要找的吗?如何使用它?

共有3个答案

白腾
2023-03-14

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

袁英豪
2023-03-14

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

目前唯一的方法是你自己实现组织.eclipse.jetty.server.sessionHandler,或者寻找已经存在的东西,然后调用环境.setSessionHandler(...)

如果您需要这些信息,DW 0.6.2将使用Jetty 8.1.10

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

越新霁
2023-03-14

与滴巫师

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

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

 类似资料:
  • 我正在尝试登录到一个网站,并获得一个页面站点的页面源后,我用java URLConnection登录到该网站。我面临的问题是我无法维护会话,所以服务器给我这个警告,不让我连接: 该系统要求使用HTTP Cookie来验证授权信息。我们的系统检测到您的浏览器已禁用HTTP Cookie,或不支持它们。有关如何正确配置浏览器以便与此系统一起使用的详细信息,请参阅浏览器中的帮助页。 这是我的源代码:

  • 问题内容: 我试图用来刮擦需要通过登录的网站。然后,一旦我登录,便可以通过访问一个单独的网页。 第一个问题,现在被登录。我试图使用到的登录信息,但我得到的回应没有出现在被记录。 在这里,我只是转发我返回的页面,但是返回的页面仍显示登录表单,如果尝试访问另一个页面,则表示我尚未登录。 我认为我需要维护客户端会话和cookie数据,但是找不到任何资源可以帮助我了解如何做到这一点。 作为后续,我最终使用

  • Navicat 为维护 Oracle 用户提供完整的解决方案。 在对象选项卡中选择用户。 右击已选择的用户。 选择“维护”,然后从弹出式菜单中选择一个维护选项。 选项 描述 密码过期 设置用户的密码为过期。 锁定帐号 锁定用户的帐号和禁用访问。 解除锁定帐号 解除锁定用户的帐号和启用访问。

  • Navicat 为维护 Oracle 用户提供完整的解决方案。 在对象选项卡中选择用户。 按住 Control 键并点按已选择的用户。 选择“维护”,然后从弹出式菜单中选择一个维护选项。 选项 描述 锁定用户 锁定用户的帐号和禁用访问。 解除锁定用户 解除锁定用户的帐号和启用访问。 过期用户 设置用户的密码为过期。

  • Navicat 为维护 Oracle 用户提供完整的解决方案。 在对象选项卡中选择用户。 右击已选择的用户。 选择“维护”,然后从弹出式菜单中选择一个维护选项。 选项 描述 密码过期 设置用户的密码为过期。 锁定帐号 锁定用户的帐号和禁用访问。 解除锁定帐号 解除锁定用户的帐号和启用访问。

  • 如何在restasured中设置会话属性?在我的应用程序代码中,我们有如下内容 String userId = request.getSession().getAttribute(“userid”) 如何在此处将 userId 设置为会话属性(在重新保证的测试用例中)? 如何为所有请求(多个后续请求)维护同一会话? 当我发送多个请求时,它认为每个请求都是新的,会话从服务器端失效,我想在后续调用之间