package org.beanfuse.security.ui;
import java.io.Serializable;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.beanfuse.security.UserDetails;
import org.beanfuse.security.concurrent.SessionIdentifierAware;
import org.beanfuse.utils.web.RequestUtils;
public class WebUserDetails extends UserDetails implements SessionIdentifierAware, Serializable {
private static final long serialVersionUID = -5467873860513829680L;
private String sessionId;
/** 登录IP */
private String host;
public String getSessionId() {
return sessionId;
}
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public WebUserDetails(HttpServletRequest request) {
setHost(RequestUtils.getIpAddr(request));
HttpSession session = request.getSession(false);
this.sessionId = (session != null) ? session.getId() : null;
doPopulateAdditionalInformation(request);
}
protected void doPopulateAdditionalInformation(HttpServletRequest request) {
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(super.toString() + ": ");
sb.append("RemoteIpAddress: " + this.getHost() + "; ");
sb.append("SessionId: " + this.getSessionId());
return sb.toString();
}
}