2010-04-20 7 views
0

J'ai mis en place une gestion de session sur un projet d'application google. Ceci est supposé permettre à mes utilisateurs de se connecter et de maintenir l'état entre les pages. Je viens de l'objet de dumping dans le service d'accueil par défaut pour l'essayer:Envoyer un mot de passe en toute sécurité en utilisant gwt et le moteur de l'application?

public class GreetingServiceImpl extends RemoteServiceServlet implements GreetingService { 
    public void sessionTest(String username) { 
     HttpSession session = getThreadLocalRequest().getSession(false); 
     session.setAttribute("username", username); 
    } 
} 

tente alors de le retirer dans ma page project.jsp d'atterrissage:

<% 
String username = null; 
HttpSession mysession = request.getSession(false); 
if (mysession.getAttribute("username") != null) { 
    username = (String)mysession.getAttribute("username"); 
} 
else { 
    username = "(not logged in yet)"; 
} 

<p>You are: 
<%= username %> 
</p> 
%> 

Il fonctionne, mais je ne savoir comment envoyer les données dans sessionTest() de manière sécurisée. Si j'envoyais le mot de passe de l'utilisateur là aussi, ce serait clair. Ce serait ok (je pense) si j'utilisais https, mais google app engine ne vous permet pas d'utiliser https sous des domaines personnalisés (comme www.monsite.com), ils doivent être sous le (mysite. appspot.com) domaine.

Je suis coincé ici - comment pouvons-nous envoyer des mots de passe en toute sécurité? Si j'utilisais php, je pense que je pourrais utiliser l'authentification digest (je ne suis pas trop expérimenté ici) - pouvons-nous faire quelque chose comme ça avec gwt + gae?

Merci

+0

Y a-t-il une raison pour laquelle vous n'utilisez pas le service Utilisateurs existant fourni avec App Engine? La connexion est un problème résolu, et vous ne le ferez certainement pas mieux que Google. Ou vous pouvez attendre la prise en charge officielle d'OAuth par App Engine, qui figure sur leur feuille de route: http://code.google.com/appengine/docs/roadmap.html –

+0

Salut, oui, le raisonnement est que tous mes utilisateurs ne vont pas avoir un compte Gmail pour vous connecter, certains utilisateurs ne veulent pas s'inscrire à un compte Gmail pour utiliser mon application. Je sais que les choses intégrées sont bonnes, mais cela ne fonctionne pas pour mes utilisateurs. – user246114

Répondre

0

données de session sont stockées sur le serveur, et non sur le client - seulement un jeton opaque est envoyé au client pour identifier la session du client.

Cela dit, vous ne devriez probablement pas stocker le mot de passe de l'utilisateur dans la session - pourquoi voudriez-vous? - ou, en effet, en clair du tout.

+0

Salut, oui tout à fait d'accord, mais à un certain point de «s'inscrire» ou «login», le mot de passe des utilisateurs doit être envoyé au serveur, au moins une fois. Par la suite, l'identifiant de session opaque peut être utilisé au lieu d'envoyer le mot de passe. C'est cette fois-ci que je m'interroge sur la protection. Je vois dans la feuille de route que https pour les sites tiers est sur le pont, ce qui devrait résoudre ce problème. – user246114

Questions connexes