package org.beanfuse.security.concurrent;
import java.util.List;
import org.beanfuse.security.Authentication;
import org.beanfuse.security.online.OnlineActivity;
/**
* 记录session信息的注册表
*
* @author chaostone
*
*/
public interface SessionRegistry {
/**
* 注册
*
* @param sessionId
* @param authentication
*/
public void register(String sessionId, Authentication authentication);
/**
* 注销指定sessionId
*
* @param sessionId
* @return
*/
public OnlineActivity remove(String sessionId);
/**
* 查询在线记录
*
* @return
*/
public List getOnlineActivities();
/**
* 查询某帐号的在线信息
*
* @param principal
* @param includeExpiredSessions
* @return
*/
public List getOnlineActivities(Object principal, boolean includeExpiredSessions);
/**
* 查询对应sessionId的信息
*
* @param sessionId
* @return
*/
public OnlineActivity getOnlineActivity(String sessionId);
/**
* 查询帐号是否还有没有过期的在线记录
*
* @param principal
* @return
*/
public boolean isRegisted(Object principal);
/**
* 更新对应sessionId的最后访问时间
*
* @param sessionId
*/
public void refreshLastRequest(String sessionId);
/**
* session count
*
* @return
*/
public int count();
}