Hibernate + GWT + Login

6 respostas
D

Pessoal, estou com uma dúvida, várias para falar a verdade…
Estou desenvolvendo um projeto e pretendo utilizar GWT 2.0 + Hibernate e surgiu uma dúvida referente ao login, criei a janela de login usando o GWT, criei a DAO de usuários utilizando Hibernate com Annotations, etc… na tela de login tenho o seguinte código:

package br.com.cliente.produto.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.Event.NativePreviewEvent;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

public class LoginDialog extends DialogBox{
	
	interface Binder extends UiBinder<Widget, LoginDialog> { }
	private static final Binder binder = GWT.create(Binder.class);
	
	@UiField TextBox usernameField;
	@UiField TextBox passwordField;
	@UiField Button loginButton;
	@UiField Button closeButton;
	
	public LoginDialog(){
		setText("Login");
		setAnimationEnabled(true);
		setGlassEnabled(true);
		setModal(true);
		setWidget(binder.createAndBindUi(this));
	}
	
	@Override
	protected void onPreviewNativeEvent(NativePreviewEvent preview){
		super.onPreviewNativeEvent(preview);
		NativeEvent evt = preview.getNativeEvent();
		if(evt.getType().equals("keydown")){
			switch (evt.getKeyCode()){
				case KeyCodes.KEY_ENTER:
					onLoginClicked(null);
				break;
				case KeyCodes.KEY_ESCAPE:
					onSignOutClicked(null);
				break;
			}
		}
	}
	
	@UiHandler("loginButton")
	void onLoginClicked(ClickEvent event){
		if(usernameField.getValue().equals("") || passwordField.getValue().equals("")){
			Window.alert("Digite seu nome de usuário e senha.");
		}
		else{
			Window.alert("Processando login do usuário:" + usernameField.getValue());
			onSignOutClicked(null);
		}
	}

	@UiHandler("closeButton")
	void onSignOutClicked(ClickEvent event){
		hide();
	}
	
}

Alguém com mais experiência pode me indicar o caminho para verificar o login e gravar o id do usuário na session?
Obrigado!

6 Respostas

serathiuk

Para validar o login, você vai utilizar um RemoteServiceServlet( http://code.google.com/webtoolkit/doc/latest/DevGuideServerCommunication.html#DevGuideRemoteProcedureCalls ) para se comunicar com o servidor.

E para gravar na sessão, você vai utilizar getThreadLocalRequest().getSession() do RemoteServiceServlet e trabalhar da mesma forma que trabalharia com qualquer Servlet comum.

A

serathiuk:
Para validar o login, você vai utilizar um RemoteServiceServlet( http://code.google.com/webtoolkit/doc/latest/DevGuideServerCommunication.html#DevGuideRemoteProcedureCalls ) para se comunicar com o servidor.

E para gravar na sessão, você vai utilizar getThreadLocalRequest().getSession() do RemoteServiceServlet e trabalhar da mesma forma que trabalharia com qualquer Servlet comum.

Curiosidade,

e se eu estivesse trabalhando com JSF ao invés de Servlets, como ficaria?

D

Desculpe o delay de resposta, vou dar uma estudada nas dicas e tentar implementar aqui.
Valeu, obrigado!

D

Cara, valeu pela dica, consegui a comunicação com o servidor utilizando RPC do GWT, mas como implemento o getThreadLocalRequest().getSession() do RemoteServiceServlet?

A

x

juniorsatanas

danielbertini , Tudo Bom ?

Gostaria muito de estudar os fontes para aprender… [email removido]

ou se quiser pode postalos aqui…

Grande Abraço Valeu !

Criado 21 de dezembro de 2009
Ultima resposta 25 de dez. de 2009
Respostas 6
Participantes 4