/* * * Copyright c 2005-2009 * Licensed under the Apache License, Version 2.0 (the "License") * http://www.apache.org/licenses/LICENSE-2.0 * */ /******************************************************************************** * @author chaostone * * MODIFICATION DESCRIPTION * * Name Date Description * ============ ============ ============ * chaostone 2006-8-28 Created * ********************************************************************************/ package org.beanfuse.security.monitor; import java.util.List; import javax.servlet.http.HttpSession; import org.beanfuse.security.Authentication; import org.beanfuse.security.AuthenticationException; import org.beanfuse.security.concurrent.category.CategorySessionController; import org.beanfuse.security.monitor.filters.HttpSessionIntegrationFilter; import org.beanfuse.security.providers.AuthenticationProvider; import org.beanfuse.security.providers.rememberme.RememberMeService; import org.beanfuse.security.ui.UserDetailsSource; /** * 用户在线服务提供类 * * @author chaostone * */ public interface SecurityMonitor { // -----------Authentication----------------- /** * 认证 * * @param auth * @param httpRequest * @return * @throws AuthenticationException */ public Authentication authenticate(Authentication auth) throws AuthenticationException; /** * 退出 1)unregister session registry<br> * 2)unregister authority<br> * 3)clear session attributes(httpSessionIntegrationFilter)<br> * but not invalidate it * * @see HttpSessionIntegrationFilter * @param sessionId */ public void logout(HttpSession session); /** * enableRememberMe * * @return */ public boolean enableRememberMe(); /** * @see RememberMeService * @return */ public RememberMeService getRememberMeService(); /** * @see RememberMeService * @param rememberMeService */ public void setRememberMeService(RememberMeService rememberMeService); /** * 用户详情 * * @return */ public UserDetailsSource getUserDetailsSource(); /** * 设置用户详情 * * @param source */ public void setUserDetailsSource(UserDetailsSource source); /** * @see AuthenticationProvider * @return */ public List getProviders(); /** * @see AuthenticationProvider * @param providers */ public void setProviders(List providers); // --------------------------authrization------------------- /** * 是否经过授权 * * @param user * @param resourceName * @return */ public boolean isAuthorized(Long userId, String resourceName); /** * 是否忽略判断 * * @param resourceName * @return */ public boolean isPublicResource(String resourceName); // ---------------session monitoring------------------ /** * 会话控制器 * * @see CategorySessionController * @return */ public CategorySessionController getSessionController(); /** * 设置会话控制器 * * @param sessionController */ public void setSessionController(CategorySessionController sessionController); // -----------httpsession integration------------ public HttpSessionIntegrationFilter getHttpSessionIntegrationFilter(); }