J'ai juste enabled Session dans mon application Google AppEngine/Java + GWT. Et comment l'utiliser? Comment est-ce que j'obtiens l'ID de session et le jeu tout sera-t-il bon? Existe-t-il de véritables exemples de page de connexion simple où je ne fais que saisir LoginName et Password, puis passer au serveur via un appel RPC, s'authentifier auprès de la base de données et renvoyer l'ID de session au client.Exemple de session AppEngine Google
je code suivant déjà, mais ne sais pas quoi faire:
GWT Login Form:
public class LoginForm {
private final LoginServiceAsync loginService = GWT.create(LoginService.class);
VerticalPanel loginVp = new VerticalPanel();
TextBox loginTxt = new TextBox();
TextBox passTxt = new TextBox();
Button loginBtn = new Button("Login");
public Widget getLoginWidget(){
loginBtn.addClickHandler(new ClickHandler(){
public void onClick(ClickEvent arg0) {
loginService.authenticateUser(loginTxt.getText(), passTxt.getText(),
new AsyncCallback<String>(){
public void onFailure(Throwable caught) {
InfoPanel.show(InfoPanelType.HUMANIZED_MESSAGE, "No Connetion", "Problem conneting to the server.");
}
public void onSuccess(String result) {
InfoPanel.show(InfoPanelType.HUMANIZED_MESSAGE, "Session ID", "Your session id is: " + result);
GWT.log("Setting up session", null);
String sessionID = result;
final long DURATION = 1000 * 60 * 60 * 24 * 14; //duration remembering login. 2 weeks
Date expires = new Date(System.currentTimeMillis() + DURATION);
Cookies.setCookie("sid", sessionID, expires, null, "/", false);
}
}
);
}
});
loginVp.add(loginTxt);
loginVp.add(passTxt);
loginVp.add(loginBtn);
return loginVp;
}
}
RPC Servlet:
public class LoginServiceImpl extends RemoteServiceServlet implements LoginService{
//Sends back to the client session id
public String authenticateUser(String login, String password){
String sessionId = new String();
// TODO: figure out how to work with session id in GAE/J
sessionId = "How to get session id?";
return sessionId;
}
public Boolean checkIfSessionIsValid(String sessionId){
//TODO: figure out how to check user's credentials
return true;
}
}
Tout conseils dans la bonne direction serait utile. Merci.
Soyez prudent si vous utilisez juste un cookie à base sessionId pour l'authentification, car il peut vous laisser ouvert aux attaques de script intersite: http://groups.google.com/group/Google-Web-Toolkit/web/security-for-gwt-applications –