Hey Vagner Araujo! Thank you for your post! I've searched a long time for something like handling sessions in GWT!!! :D I have a question too. Waht's when the session invalidates (e.g. timeout)? Should there a "heartbeat" which checks the session validity?
Thank you! -Danny 2009/2/27 Mahavir Jain <[email protected]> > Thanks Vagner for sharing this. > > You can also refer the attached LoginManager which contains user > Management. > > I, too downloaded from somewhere. I don't remember but source code is > attached. > > Thanks. > Mahavir > > > On Fri, Feb 27, 2009 at 12:32 PM, Vagner Araujo <[email protected]>wrote: > >> >> Hello Friends, >> >> I was making a simple code of Session for my students. >> Well, I decided post that code here, >> because maybe it can serve as a basis for someone. >> >> //Main Class >> >> package com.javaneses.spring.client; >> >> import com.google.gwt.core.client.EntryPoint; >> import com.google.gwt.core.client.GWT; >> import com.google.gwt.user.client.Cookies; >> import com.google.gwt.user.client.Window; >> import com.google.gwt.user.client.rpc.AsyncCallback; >> import com.google.gwt.user.client.rpc.ServiceDefTarget; >> import com.google.gwt.user.client.ui.Button; >> import com.google.gwt.user.client.ui.ClickListener; >> import com.google.gwt.user.client.ui.DialogBox; >> import com.google.gwt.user.client.ui.FlexTable; >> import com.google.gwt.user.client.ui.FlowPanel; >> import com.google.gwt.user.client.ui.Label; >> import com.google.gwt.user.client.ui.PasswordTextBox; >> import com.google.gwt.user.client.ui.RootPanel; >> import com.google.gwt.user.client.ui.TextBox; >> import com.google.gwt.user.client.ui.Widget; >> import com.javaneses.spring.client.rpc.service.LoginService; >> import com.javaneses.spring.client.rpc.service.LoginServiceAsync; >> import com.javaneses.spring.client.rpc.service.SessionService; >> import com.javaneses.spring.client.rpc.service.SessionServiceAsync; >> >> /** >> * Entry point classes define <code>onModuleLoad()</code>. >> */ >> public class Main implements EntryPoint, ClickListener{ >> >> /** >> * This is the entry point method. >> */ >> >> private final SessionId sessionId = new SessionId(); >> >> private final DialogBox dialogBox = new DialogBox(); >> private final Label userLabel = new Label("User"); >> private final Label passwdLabel = new Label("Password"); >> private final TextBox userField = new TextBox(); >> private final PasswordTextBox passwdField = new PasswordTextBox(); >> private final Button login = new Button("Login"); >> >> private final Label welcome = new Label("Welcome"); >> >> private final User user = new User(); >> >> { >> FlexTable flexTable = new FlexTable(); >> >> flexTable.setWidget(0, 0, userLabel); >> flexTable.setWidget(0, 1, userField); >> flexTable.setWidget(1, 0, passwdLabel); >> flexTable.setWidget(1, 1, passwdField); >> >> FlowPanel panel = new FlowPanel(); >> panel.setWidth("100"); >> panel.add(login); >> >> flexTable.setWidget(2, 1, panel); >> >> dialogBox.setSize("350", "150"); >> dialogBox.add(flexTable); >> >> login.addClickListener(this); >> >> sessionId.setSessionId(Cookies.getCookie("session")); >> }//end init block >> >> public void onModuleLoad() { >> >> validateSession(); >> >> }//end onModuleLoad >> >> private void validateSession(){ >> >> SessionServiceAsync myServiceAsync = >> (SessionServiceAsync)GWT.create >> (SessionService.class); >> ServiceDefTarget serviceDefTarget = (ServiceDefTarget) >> myServiceAsync; >> serviceDefTarget.setServiceEntryPoint("session"); >> >> AsyncCallback<SessionId> asyncCallback = new >> AsyncCallback<SessionId> >> (){ >> public void onFailure(Throwable caught) { >> System.out.println(caught); >> }//end onFailure >> public void onSuccess(SessionId result) { >> if(result == null){ >> RootPanel.get().clear(); >> RootPanel.get().add(dialogBox); >> System.out.println("Teste1"); >> }else >> if(!sessionId.getSessionId().equals(result.getSessionId())){ >> RootPanel.get().clear(); >> RootPanel.get().add(dialogBox); >> System.out.println("Teste2"); >> }else >> if(sessionId.getSessionId().equals(result.getSessionId())){ >> RootPanel.get().add(welcome); >> } >> }//end onSucess >> };//end AsyncCallback<String> asyncCallback = new >> AsyncCallback<String>() >> myServiceAsync.session(sessionId, asyncCallback); >> }//end validateSession >> >> public void onClick(Widget sender) { >> if(sender == login){ >> user.setUser(userField.getText()); >> user.setPasswd(passwdField.getText()); >> LoginServiceAsync loginServiceAsync = >> (LoginServiceAsync)GWT.create >> (LoginService.class); >> ServiceDefTarget serviceDefTarget = >> (ServiceDefTarget) >> loginServiceAsync; >> serviceDefTarget.setServiceEntryPoint("login"); >> >> AsyncCallback<String> asyncCallback = new >> AsyncCallback<String>() { >> public void onSuccess(String result) { >> if(result != null){ >> RootPanel.get().clear(); >> >> RootPanel.get().add(welcome); >> >> Cookies.setCookie("session", result); >> >> sessionId.setSessionId(result); >> >> System.out.println("login >> session => "+result); >> >> }else{ >> Window.alert("Login Invalid >> !"); >> } >> } >> public void onFailure(Throwable caught) { >> System.out.println(caught); >> } >> };//end asyncCallback >> >> loginServiceAsync.login(user, asyncCallback); >> }//end if(sender == login) >> }//end onClick >> }//end class >> >> //end Main Class >> >> >> //Interfaces of Services >> >> package com.javaneses.spring.client.rpc.service; >> >> import com.google.gwt.user.client.rpc.RemoteService; >> import com.javaneses.spring.client.SessionId; >> >> public interface SessionService extends RemoteService{ >> SessionId session(SessionId sessionId); >> }//end class >> >> >> package com.javaneses.spring.client.rpc.service; >> >> import com.google.gwt.user.client.rpc.AsyncCallback; >> import com.javaneses.spring.client.SessionId; >> >> public interface SessionServiceAsync { >> void session(SessionId sessionId, AsyncCallback<SessionId> >> asyncCallback); >> }//end MyServiceAsync >> >> //end interfaces SessionServices >> >> >> package com.javaneses.spring.server.rpc.service; >> >> import javax.servlet.http.HttpSession; >> >> import com.google.gwt.user.server.rpc.RemoteServiceServlet; >> import com.javaneses.spring.client.SessionId; >> import com.javaneses.spring.client.rpc.service.SessionService; >> >> public class SessionServiceImpl extends RemoteServiceServlet >> implements SessionService{ >> >> private static final long serialVersionUID = -6274876845484737659L; >> >> public SessionId session(SessionId sessionId) { >> HttpSession httpSession = >> getThreadLocalRequest().getSession(false); >> if(httpSession != null){ >> sessionId.setSessionId(httpSession.getId()); >> return sessionId; >> }//end if(result == null) >> return null; >> }//end session >> }//end class >> >> //interfaces login service >> >> package com.javaneses.spring.client.rpc.service; >> >> import com.google.gwt.user.client.rpc.RemoteService; >> import com.javaneses.spring.client.User; >> >> public interface LoginService extends RemoteService{ >> >> String login(User user); >> }//end interface >> >> //end >> >> package com.javaneses.spring.client.rpc.service; >> >> import com.google.gwt.user.client.rpc.AsyncCallback; >> import com.javaneses.spring.client.User; >> >> public interface LoginServiceAsync { >> >> void login(User user, AsyncCallback<String> asyncCallback); >> >> }//end interface >> >> //end interfaces login service >> >> >> //class server login >> >> >> package com.javaneses.spring.server.rpc.service; >> >> import com.google.gwt.user.server.rpc.RemoteServiceServlet; >> import com.javaneses.spring.client.User; >> import com.javaneses.spring.client.rpc.service.LoginService; >> >> public class LoginServiceImpl extends RemoteServiceServlet implements >> LoginService{ >> >> private static final long serialVersionUID = 270628040929463623L; >> >> public String login(User user) { >> if(user != null && >> user.getUser().equalsIgnoreCase("vagner") && >> user.getPasswd().equals("Javagner")) >> return >> getThreadLocalRequest().getSession().getId(); >> return null; >> }//end login >> }//end class >> >> //end class server login >> >> >> //User Class >> >> package com.javaneses.spring.client; >> >> import java.io.Serializable; >> >> public class User implements Serializable{ >> private static final long serialVersionUID = -1744327211076049203L; >> >> private String user; >> private String passwd; >> >> public void setUser(String user) { >> this.user = user; >> }//end setUser >> >> public String getUser() { >> return user; >> }//end getUser >> >> public void setPasswd(String passwd) { >> this.passwd = passwd; >> }//end setPasswd >> >> public String getPasswd() { >> return passwd; >> }//end getPasswd >> >> }//end class >> >> //end User class >> >> //My Module.gwt.xml >> >> >> <module> >> >> <!-- Inherit the core Web Toolkit stuff. >> --> >> <inherits name='com.google.gwt.user.User'/> >> >> <!-- Inherit the default GWT style sheet. You can change >> --> >> <!-- the theme of your GWT application by uncommenting >> --> >> <!-- any one of the following lines. >> --> >> <inherits name='com.google.gwt.user.theme.standard.Standard'/> >> <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> >> --> >> <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> >> --> >> >> <!-- Other module inherits >> --> >> >> >> <!-- Specify the app entry point class. >> --> >> <entry-point class='com.javaneses.spring.client.Main'/> >> >> <!-- Specify the application specific style sheet. >> --> >> <stylesheet src='Main.css' /> >> >> <servlet path="/session" >> class="com.javaneses.spring.server.rpc.service.SessionServiceImpl"/> >> <servlet path="/login" >> class="com.javaneses.spring.server.rpc.service.LoginServiceImpl"/> >> </module> >> >> >> >> >> Vagner Araujo >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
