2014-08-30 2 views
1

Я читаю scalatra authentication tutorial.Проверка подлинности Scalatra

Написал мою собственную стратегию аутентификации, основанную на базе данных DB, AuthenticationSupport, добавил basicAuth() к контроллеру и теперь работает с авторизацией. Но я до сих пор не могу понять, как я могу поместить и получить идентификатор пользователя из сессии и как я должен использовать методы toSession и fromSession для этого:

protected def fromSession = { case id: String => AuthUser(id) } 
protected def toSession = { case usr: AuthUser => usr.id } 

ответ

4

Я написал довольно подробное изложение на Scentry на моем блоге (obligatory link). Чтобы ответить на ваш конкретный вопрос, не беспокойтесь о сеансе, который обрабатывается вами Scentry, по крайней мере, в случае по умолчанию. Вы можете, конечно, переопределить его, если вы так склонны.

Подумайте о том, что от session/toSession, как проводка между тем, что скаляра делает для вас, чтобы добавить пользователя в сеанс и как вы получаете пользователя. fromSession передает вам идентификатор и говорит: «Верните мне запись пользователя». Вы можете делать все, что вам нужно, чтобы обращаться с этим, получить доступ к базе данных, получить доступ к веб-сервису. toSession - это обратное, он в основном говорит: «У меня есть этот пользовательский объект, с которым вы меня передали сSession, как мне вернуть идентификатор?». То же самое, что бы вы ни делали, чтобы преобразовать пользователя в ID.

В более конкретных терминах, вы можете думать о них, как:

fromSession: String => A 
toSession: A => String 

Где Строка Ваш идентификатор и ваш пользовательский объект. Как только вы подключите их, user, isAuthenticated и т. Д. Просто выполните работу (tm) внутри ваших сервлетов.

Надеюсь, что это поможет!

+2

ваша ссылка сломана –

+0

Так было. Обновлено, чтобы указать на http://www.codeitall.com/2014/11/30/getting-started-with-scentry-for-scalatra/ – XeroxDucati

+2

Все еще сломанной .. , – Federico

Смежные вопросы