下面列出了com.google.inject.servlet.RequestScoped#org.apache.shiro.session.mgt.SessionManager 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* 配置会话管理器,设定会话超时及保存
* @return
*/
@Bean
public SessionManager sessionManager() {
DefaultWebSessionManager manager = new DefaultWebSessionManager();
//设置session过期时间为1小时(单位:毫秒),默认为30分钟
manager.setGlobalSessionTimeout(60 * 60 * 1000);
// 是否开启定时调度器进行检测过期session
manager.setSessionValidationSchedulerEnabled(true);
manager.setSessionDAO(sessionDao());
return manager;
}
@Override
protected void bindSessionManager(AnnotatedBindingBuilder<SessionManager> bind) {
shiroSessionListeners = Multibinder.newSetBinder(binder(), SessionListener.class, Names.named(GuicySessionManager.PROP_SESSION_LISTENERS));
shiroSessionListeners.addBinding().to(ShiroSessionRegistryExpirer.class).asEagerSingleton();
bind.to(GuicySessionManager.class).asEagerSingleton();
bind(GuicySessionManager.class);
bindRealm().to(AppHandoffRealm.class);
}
@Override
protected void bindSessionManager(AnnotatedBindingBuilder<SessionManager> bind) {
bind.to(DefaultSessionManager.class).asEagerSingleton();
bind(DefaultSessionManager.class);
bindConstant().annotatedWith(Names.named("shiro.globalSessionTimeout")).to(globalSessionTimeoutInSecs * 1000L);
bindConstant().annotatedWith(Names.named("shiro.sessionValidationSchedulerEnabled")).to(false);
}
/**
* SessionManager,设置Session超时
*
* @return SessionManager
*/
@Bean
public SessionManager sessionManager() {
DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
defaultWebSessionManager.setGlobalSessionTimeout(7200000);
defaultWebSessionManager.setDeleteInvalidSessions(true);
return defaultWebSessionManager;
}
@Bean
public SessionManager webSessionManager(){
DefaultWebSessionManager manager = new DefaultWebSessionManager();
//设置session过期时间为1小时(单位:毫秒),默认为30分钟
manager.setGlobalSessionTimeout(60 * 60 * 1000);
manager.setSessionValidationSchedulerEnabled(true);
manager.setSessionDAO(redisSessionDAO());
return manager;
}
public KeepOneUserFilter(ShiroProperties properties,CacheDelegator cacheDelegator
,SessionManager sessionManager,AuthListenerManager authListenerManager) {
this.properties = properties;
this.cacheDelegator = cacheDelegator;
this.sessionManager = sessionManager;
this.authListenerManager = authListenerManager;
}
@Bean(name = "securityManager")
@DependsOn(value = {"cacheManager", "rememberMeManager", "mainRealm"})
public DefaultSecurityManager securityManager(Realm realm, RememberMeManager rememberMeManager,
CacheManager cacheManager, SessionManager sessionManager) {
DefaultSecurityManager sm = new DefaultWebSecurityManager();
sm.setRealm(realm);
sm.setCacheManager(cacheManager);
sm.setSessionManager(sessionManager);
sm.setRememberMeManager(rememberMeManager);
return sm;
}
@Bean
public SessionManager getSessionManager() {
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
sessionManager.setGlobalSessionTimeout(180000);
sessionManager.setDeleteInvalidSessions(true);
return sessionManager;
}
@Bean(name = "securityManager")
@DependsOn(value = {"cacheManager", "rememberMeManager", "mainRealm"})
public DefaultSecurityManager securityManager(Realm realm, RememberMeManager rememberMeManager, CacheManager cacheManager, SessionManager sessionManager) {
DefaultSecurityManager sm = new DefaultWebSecurityManager();
sm.setRealm(realm);
sm.setCacheManager(cacheManager);
sm.setSessionManager(sessionManager);
sm.setRememberMeManager(rememberMeManager);
return sm;
}
@Override
protected void bindSessionManager(final AnnotatedBindingBuilder<SessionManager> bind) {
// use native web session management instead of delegating to servlet container
// workaround for NEXUS-5727, see NexusDefaultWebSessionManager javadoc for clues
bind.to(NexusWebSessionManager.class).asEagerSingleton();
// this is a PrivateModule, so explicitly binding the NexusDefaultSessionManager class
bind(NexusWebSessionManager.class);
}
protected SessionDAO getSessionDAO() {
final SecurityManager securityManager = SecurityUtils.getSecurityManager();
if(securityManager instanceof SessionsSecurityManager) {
final SessionManager sessionManager = ((SessionsSecurityManager) securityManager).getSessionManager();
if(sessionManager instanceof DefaultSessionManager) {
return ((DefaultSessionManager) sessionManager).getSessionDAO();
}
}
return null;
}
@Override
public void setSessionManager( SessionManager sessionManager ) {
if ( !( sessionManager instanceof HttpRequestSessionManager ) ) {
logger.info( "Replacing {} with HttpRequestSessionManager", sessionManager );
sessionManager = new HttpRequestSessionManager();
}
super.setSessionManager( sessionManager );
}
public void setSessionManager(SessionManager sessionManager)
{
this.sessionManager = sessionManager;
}
@Bean
public SessionManager sessionManager() {
AdminWebSessionManager mySessionManager = new AdminWebSessionManager();
return mySessionManager;
}
@Override
public void configure() {
super.configure();
expose(SessionManager.class);
}
@Bean
public SessionManager sessionManager() {
AdminWebSessionManager mySessionManager = new AdminWebSessionManager();
return mySessionManager;
}
public void setSessionManager(SessionManager sessionManager){
this.sessionManager = sessionManager;
}
@Bean
public SessionManager sessionManager() {
return new AdminWebSessionManager();
}
public void setSessionManager(SessionManager sessionManager) {
this.sessionManager = sessionManager;
}
public void setSessionManager(SessionManager sessionManager) {
this.sessionManager = sessionManager;
}
public void setSessionManager(SessionManager sessionManager) {
this.sessionManager = sessionManager;
}
/**
* 自定义sessionManager
* create by: leigq
* create time: 2019/7/3 14:31
*
* @return SessionManager
*/
@Bean
public SessionManager sessionManager() {
MySessionManager mySessionManager = new MySessionManager();
mySessionManager.setSessionDAO(redisSessionDAO());
return mySessionManager;
}