2014-08-30 3 views
1

Je lis scalatra authentication tutorial.Authentification Scalatra

A écrit ma propre stratégie d'authentification basée sur DB, trait AuthenticationSupport, ajouté basicAuth() au contrôleur et maintenant l'autorisation fonctionne. Mais je ne comprends toujours pas, comment puis-je mettre et obtenir l'ID utilisateur de la session et comment dois-je utiliser des méthodes toSession et fromSession pour cela:

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

Répondre

4

J'ai écrit un aperçu assez détaillé sur Scentry sur mon blog (obligatory link). Pour répondre à votre question spécifique, ne vous inquiétez pas de la session, celle-ci est gérée pour vous par Scentry, au moins dans le cas par défaut. Vous pouvez bien sûr passer outre si vous êtes si enclin. Pensez à fromSession/toSession comme le câblage entre ce que scalatra fait pour vous d'ajouter un utilisateur à la session et comment vous obtenez un utilisateur. fromSession vous remet une pièce d'identité et dit: «Rendez-moi un enregistrement utilisateur». Vous pouvez faire tout ce dont vous avez besoin pour gérer cela, accéder à une base de données, accéder à un service Web, etc. toSession est l'inverse, il dit essentiellement 'j'ai cet objet utilisateur que vous m'avez remis deSession, comment puis-je récupérer l'ID?'. Même chose, quel que soit le travail que vous devez faire pour convertir un utilisateur en ID.

En termes plus spécifiques, vous pouvez penser à ces derniers comme:

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

Où chaîne est votre ID et A est votre objet utilisateur. Une fois que vous les avez connectés, user, isAuthenticated, etc., travaillez simplement (tm) dans vos servlets.

Espérons que ça aide!

+2

votre lien est cassé –

+0

Donc, il était .. mis à jour pour pointer vers http://www.codeitall.com/2014/11/30/getting-started-with-scentry-for-scalatra/ – XeroxDucati

+2

Toujours brisé .. . – Federico

Questions connexes