60 lines
1.7 KiB
Java
60 lines
1.7 KiB
Java
package com.test.gwt.server;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpSession;
|
|
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
|
|
import com.test.gwt.client.LoginService;
|
|
import com.test.gwt.shared.UserDTO;
|
|
|
|
public class LoginServiceImpl extends RemoteServiceServlet implements LoginService
|
|
{
|
|
private static final long serialVersionUID = 4456105400553118785L;
|
|
|
|
@Override
|
|
public UserDTO loginServer(String name, String password)
|
|
{
|
|
UserDTO user = new UserDTO(name, password);
|
|
storeUserInSession(user);
|
|
return user;
|
|
}
|
|
|
|
@Override
|
|
public UserDTO loginFromSessionServer()
|
|
{
|
|
return getUserAlreadyFromSession();
|
|
}
|
|
|
|
@Override
|
|
public void logout()
|
|
{
|
|
deleteUserFromSession();
|
|
}
|
|
|
|
private UserDTO getUserAlreadyFromSession()
|
|
{
|
|
UserDTO user = null;
|
|
HttpServletRequest httpServletRequest = this.getThreadLocalRequest();
|
|
HttpSession session = httpServletRequest.getSession();
|
|
Object userObj = session.getAttribute("user");
|
|
if (userObj != null && userObj instanceof UserDTO)
|
|
{
|
|
user = (UserDTO) userObj;
|
|
}
|
|
return user;
|
|
}
|
|
|
|
private void storeUserInSession(UserDTO user)
|
|
{
|
|
HttpServletRequest httpServletRequest = this.getThreadLocalRequest();
|
|
HttpSession session = httpServletRequest.getSession(true);
|
|
user.setSessionId(session.getId());
|
|
session.setAttribute("user", user);
|
|
}
|
|
|
|
private void deleteUserFromSession()
|
|
{
|
|
HttpServletRequest httpServletRequest = this.getThreadLocalRequest();
|
|
HttpSession session = httpServletRequest.getSession();
|
|
session.removeAttribute("user");
|
|
}
|
|
|
|
} |