An serializable object from the persistence side. On Wed, Jun 16, 2010 at 6:46 AM, Magnus <[email protected]>wrote:
> What's PersonDTO? > > Magnus > > On 3 Jun., 22:36, Bruno Lopes <[email protected]> wrote: > > Then on the server side for the LoginService > > > > public LoginResponse login(String username, String password) { > > LoginPService loginService = ServiceLocator.getLoginService(); > > PersonDTO personDTO = null; > > > > try { > > > > personDTO = loginService.getUserByUsername(username); > > > > if (personDTO == null){ > > //.getInstance().info("Utilizador n√£o encontrado: > "+username); > > return new LoginResponse(false, false); > > } else if (!loginService.checkPassword(password)){ > > //UCCLogger.getInstance().info("Password errada do > utilizador: > > "+username); > > return new LoginResponse(false, false); > > } > > > > } catch (Throwable e) { > > return new LoginResponse(false, false); > > } > > > > LoginResponse response = new LoginResponse(); > > response.setLoginSuccess(true); > > > > PadroesSession padroesSession = PadroesSession.getInstance(); > > padroesSession.setRequest(getThreadLocalRequest()); > > > > padroesSession.setUser(personDTO); > > return response; > > } > > > > On Thu, Jun 3, 2010 at 9:33 PM, Bruno Lopes > > <[email protected]>wrote: > > > > > YES > > > on the server side I have something like this: > > > > > public class PadroesSession implements Serializable{ > > > > > private static PadroesSession padroesSession=null; > > > > > public static PadroesSession getInstance(){ > > > if(padroesSession == null){ > > > padroesSession = new PadroesSession(); > > > return padroesSession; > > > } else { > > > return padroesSession; > > > } > > > } > > > > > private PadroesSession(){ > > > > > } > > > > > private static final String USER_SESSION = "userSession"; > > > private HttpServletRequest request = null; > > > private HttpSession session = null; > > > > > public PersonDTO getUser(){ > > > > > if(null == session) return null; > > > > > return session.getAttribute(USER_SESSION) != null ? > > > (PersonDTO)session.getAttribute(USER_SESSION) : null; > > > > > } > > > > > public HttpSession getSession(){ > > > return session; > > > } > > > > > public void invalidate(){ > > > if(request!=null) > > > if(request.getSession(false)!= null) > > > request.getSession(false).invalidate(); > > > if(null != session){ > > > session.invalidate(); > > > session = null; > > > } > > > > > } > > > > > public void setUser(PersonDTO user){ > > > if(null == user){ > > > if(session!=null) session.removeAttribute(USER_SESSION); > > > return; > > > } > > > > > if(null != request) > > > this.session = request.getSession(true); > > > > > if(session!=null) session.setAttribute(USER_SESSION, user); > > > } > > > > > public String getId(){ > > > return request.getSession(false).getId(); > > > } > > > > > public HttpServletRequest getRequest() { > > > return request; > > > } > > > > > public void setRequest(HttpServletRequest request) { > > > this.request = request; > > > > > } > > > > > } > > > > > On Thu, Jun 3, 2010 at 2:45 PM, Magnus <[email protected] > >wrote: > > > > >> Hi, > > > > >> thank you for the code! I adopted it to my application. > > > > >> So you authenticate the user via the remote service! But how do you > > >> actually store the user context the app is running in? Do you do some > > >> session management? > > > > >> Thanks > > >> Magnus > > > > >> On Jun 2, 7:15 pm, Bruno Lopes <[email protected]> > wrote: > > >> > Hi Alpine Bluster, > > > > >> > look at this code: > > > > >> > public void onModuleLoad() { > > > > >> > this.setLoginPanel(); > > > > >> > loginButton = new Button("Login"); > > > > >> > loginButton.addListener(new ButtonListenerAdapter() { > > > > >> > public void onClick(Button button, EventObject e) { > > > > >> > userAuthentication(); > > > > >> > } > > >> > }); > > > > >> > formPanel.addButton(loginButton); > > > > >> > formPanel.setBorder(false); > > > > >> > loginPanel.add(formPanel); > > > > >> > Element appPanelEl = loginPanel.getElement(); > > > > >> > @SuppressWarnings("unused") > > > > >> > KeyMap map = new KeyMap(appPanelEl, new KeyMapConfig() { > > > > >> > { > > > > >> > setKey(EventObject.ENTER); > > > > >> > setKeyListener(new KeyListener() { > > > > >> > public void onKey(int key, EventObject e) { > > > > >> > loginButton.focus(); > > > > >> > } > > >> > }); > > >> > } > > >> > }); > > > > >> > RootPanel.get("login_widget").add(loginPanel); > > > > >> > } > > > > >> > private void userAuthentication() { > > > > >> > if (this.userNameField.getValueAsString().equals("")) > > > > >> > Window.alert("username must not be empty."); > > > > >> > else { > > > > >> > loginService = GWT.create(LoginService.class); > > > > >> > String username = this.userNameField.getValueAsString(); > > > > >> > String password = this.passwordField.getValueAsString(); > > > > >> > this.loginService.login(username, password, > > > > >> > new AsyncCallback<LoginResponse>() { > > > > >> > public void onFailure(Throwable caught) { > > > > >> > Window.alert("server side failure: " + caught); > > > > >> > } > > > > >> > public void onSuccess(LoginResponse result) { > > > > >> > if (result.isLoginSuccess()){ > > > > >> > Window.Location.replace("./../Main.html"); > > > > >> > } > > > > >> > else Window.alert("username or password invalid."); > > > > >> > } > > >> > }); > > >> > } > > >> > } > > > > >> > ... > > > > >> > FOR LOGOUT > > >> > .... > > > > >> > private Panel northPanel = new Panel(); > > > > >> > .... > > > > >> > Toolbar toolbar = new Toolbar(); > > > > >> > ToolbarButton logoutButton = new ToolbarButton("Sign Out"); > > > > >> > logoutButton.addListener( new ButtonListenerAdapter() { > > > > >> > public void onClick( Button button, EventObject e ) { > > > > >> > LoginServiceAsync service = GWT.create(LoginService.class); > > > > >> > service.logout(new AsyncCallback<Void>() { > > > > >> > @Override > > > > >> > public void onFailure(Throwable caught) { > > > > >> > caught.printStackTrace(); > > > > >> > } > > > > >> > @Override > > > > >> > public void onSuccess(Void result) { > > > > >> > Window.Location.replace("./../Login.html"); > > > > >> > } > > >> > }); > > >> > } > > >> > }); > > > > >> > tabPanel = new TabPanel(); > > > > >> > toolbar.addFill(); > > > > >> > toolbar.addText("welcome," + someUser..); > > > > >> > toolbar.addSeparator(); > > > > >> > toolbar.addButton(logoutButton); > > > > >> > tabPanel.setWidth(NORMALIZE_SPACING); > > > > >> > tabPanel.setTopToolbar(toolbar); > > > > >> > northPanel.add(tabPanel); > > > > >> > On Wed, Jun 2, 2010 at 5:25 PM, Magnus < > [email protected]> > > >> wrote: > > >> > > Hi, > > > > >> > > I cannot find a minimalistic example that shows how to realize a > > >> login/ > > >> > > logout functionality. > > >> > > Could please someone point me to such an example? > > > > >> > > I also wonder where to put the different things. For example, the > code > > >> > > that immediately reacts on the "login" button could be placed > within > > >> > > the "client" folder of a GWT project, or it could be realized as a > > >> > > servlet. > > > > >> > > When do I use a servlet and how? > > > > >> > > Thank you! > > >> > > Magnus > > > > >> > > -- > > >> > > 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]<google-web-toolkit%[email protected]> > <google-web-toolkit%[email protected]<google-web-toolkit%[email protected]> > > > > >> <google-web-toolkit%[email protected]<google-web-toolkit%[email protected]> > <google-web-toolkit%[email protected]<google-web-toolkit%[email protected]> > > > > > > >> > > . > > >> > > For more options, visit this group at > > >> > >http://groups.google.com/group/google-web-toolkit?hl=en. > > > > >> -- > > >> 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]<google-web-toolkit%[email protected]> > <google-web-toolkit%[email protected]<google-web-toolkit%[email protected]> > > > > >> . > > >> For more options, visit this group at > > >>http://groups.google.com/group/google-web-toolkit?hl=en. > > -- > 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]<google-web-toolkit%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-web-toolkit?hl=en. > > -- 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.
