package com.idega.core.accesscontrol.business; import java.util.HashMap; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingListener; import com.idega.core.user.data.User; import com.idega.util.IWTimestamp; /** * Title: idegaWeb * Description: * Copyright: Copyright (c) 2001 * Company: idega * @author <a href="gummi@idega.is">Gu�mundur �g�st S�mundsson</a> * @version 1.0 */ public class LoggedOnInfo implements HttpSessionBindingListener { private User _user = null; // private HttpSession _session = null; private IWTimestamp _timeOfLogon = null; private int _loginTableId = -1; private String _login = null; private int _loginRecordId = -1; private String _encryptionType = null; private String _loginType = null; private Set _userRoles = null; private Map _loggedOnInfoAttribute = new HashMap(); public LoggedOnInfo() { } //setters public void setUser(User user){ this._user = user; } /* public void setSession(HttpSession session){ _session = session; } */ public void setTimeOfLogon(IWTimestamp timeOfLogon){ this._timeOfLogon = timeOfLogon; } public void setLogin(String login){ this._login = login; } public void setLoginRecordId(int loginRecordId){ this._loginRecordId = loginRecordId; } public void setEncryptionType(String encryptionType){ this._encryptionType = encryptionType; } //getters public User getUser(){ return this._user; } /* public HttpSession getSession(){ return _session; } */ public IWTimestamp getTimeOfLogon(){ return this._timeOfLogon; } public String getLogin(){ return this._login; } public int getLoginRecordId(){ return this._loginRecordId; } public String getEncryptionType(){ return this._encryptionType; } // public boolean equals(Object obj){ if(obj instanceof LoggedOnInfo ){ return this.equals((LoggedOnInfo)obj); } return false; /*else if(obj instanceof HttpSession){ return this.equals((HttpSession)obj); } else { return super.equals(obj); }*/ } public boolean equals(LoggedOnInfo obj){ return this.getUser().equals((obj).getUser()); } /* public boolean equals(HttpSession obj){ return this.getSession().equals((HttpSession)obj); } /* (non-Javadoc) * @see javax.servlet.http.HttpSessionBindingListener#valueBound(javax.servlet.http.HttpSessionBindingEvent) */ public void valueBound(HttpSessionBindingEvent event) { //do nothing } /* (non-Javadoc) * @see javax.servlet.http.HttpSessionBindingListener#valueUnbound(javax.servlet.http.HttpSessionBindingEvent) */ public void valueUnbound(HttpSessionBindingEvent event) { //log out! String name = "Unknown"; if(this._user != null){ name = this._user.getName(); } boolean success = LoginBusinessBean.logOutUserOnSessionTimeout(event.getSession(),this); System.out.println("LoggedOnInfo: Session has expired logging off user: "+name+". Success = "+ success); } /** * @return */ public String getLoginType() { return this._loginType; } /** * @param loginType */ public void setLoginType(String loginType) { this._loginType = loginType; } /** * @return */ public int getLoginTableId() { return this._loginTableId; } /** * @param id */ public void setLoginTableId(int id) { this._loginTableId = id; } /** * @return Returns the user role String's. */ public Set getUserRoles() { return this._userRoles; } /** * @param roles Collections of the role String's that the user has. */ public void setUserRoles(Set roles) { this._userRoles = roles; } public void setAttribute(Object key, Object value){ this._loggedOnInfoAttribute.put(key,value); } public Object getAttribute(Object key){ return this._loggedOnInfoAttribute.get(key); } }