Как сохранить пользовательские сессии в DropWizard?

Я ищу постоянный менеджер сеансов, который сохраняет сеанс в файловой системе (например, PHP), который можно использовать с DropWizard. Я вижу, что есть один Environment.getSessionHandler(), но я не вижу документации по этому вопросу.

Я мог бы написать свой, но я надеюсь на приготовленную еду. Будет ли вышеуказанный SessionHandler то, что я ищу? И как это использовать?

3 ответа

С dropwizard>0,7

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

А потом использовать @Session аннотации в ваших ресурсных классах.

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 и посмотреть, сможете ли вы использовать некоторые из них.

REST по определению не имеет состояния, поэтому сеансы вообще не должны использоваться. Один и тот же URI всегда должен возвращать одинаковые результаты независимо от состояния сеанса.

Другие вопросы по тегам