8
votes

Session ID Cookie dans GWT RPC

En supposant que je russe mon propre code de session, quelle est la bonne façon de générer un cookie d'identifiant de session unique et sécurisé en Java.

Devrais-je ne pas être en train de rouler le mien mais en utilisant quelque chose qui a déjà été normalisé?

J'utilise GWT et la plate-forme Google App-Engine.

Comment faire des sessions persistent à travers le navigateur / serveur redémarrant?


4 commentaires

Vous pouvez utiliser la session sur le moteur d'application Google. J'ai fourni le lien dans la réponse mise à jour.


Comment faire persister les sessions sur les redémarrages du navigateur / serveur?


Une façon d'avoir des sessions persistantes dans des redémarrages est de disposer de sessions sauvegardées par un magasin de fichiers ou une base de données. C'est ainsi que les mécanismes de basculement de session fonctionnent dans la plupart des serveurs d'applications. Mais je me demande pourquoi vous avez le besoin de cela dans Google App Moteur.


Spin-off: Stackoverflow.com/questions/ 1392135 / ...


3 Réponses :


2
votes

Non, vous ne devriez pas vous lamenter.

L'ID de session doit être cryptographiquement aléatoire (pas devinable des sources connues). Il est difficile de vous procurer ce droit.


0 commentaires

1
votes

Idéalement, vous devriez compter sur les caractéristiques de gestion de la session du cadre sous-jacent. Servlets & JSP, Struts et Spring ont ce support que vous devriez utiliser.

Dans le cas extrêmement rare que vous écrivez votre propre cadre sans aucune fonctionnalité de gestion de session sous-jacente à compter, vous pourriez commencer avec la classe Java.Security.SeCurerandom pour commencer. Bien sûr, ne réinventez pas la roue ici, pour une gestion de session brisée est la même que celle de l'authentification brisée.

mise à jour

étant donné que vous utilisez Google App Moteur, vous devez compter sur les fonctions de gestion de session fournies par le moteur. Il semble qu'il ne soit pas activé par défaut .


3 commentaires

La gestion de la session fait partie de la spécification J2EE et est implémentée par APP Server / Servlet Conteneur. Donc, à moins que «écrire votre propre framework» signifie «un code d'écriture sur le protocole HTTP RAW», vous avez toujours une gestion de la session à compter sur.


À propos, Axis 1.x met en œuvre la gestion de la session à l'aide de la classe Securerandom. Je ne sais pas pourquoi ils l'ont choisi, mais c'est le seul cas unique que j'ai rencontré.


Plus de détails sur la conception de la session de session Axis 1.x se trouve chez wiki.apache.org / WS / FrontPage / Axe / SessionsUpport . La cessation supposée (que je pouvais penser) pour n'utiliser pas HttpsSession consiste à soutenir des sessions à travers différents protocoles.



24
votes

Utilisation des sessions de servlet dans GWT

dans la classe d'implémentation du service à distance: p> xxx pré>

dans le code client: p> xxx pré>

Activation_sessions P>

appengine-web.xml p>

<sessions-enabled>true</sessions-enabled>


0 commentaires