Как сохранить пользовательские сессии в 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 всегда должен возвращать одинаковые результаты независимо от состояния сеанса.