java session cache_Java EnterpriseCacheSessionDAO类代码示例

import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO; //导入依赖的package包/类

@Override

public boolean initialize(SilentGo me) throws AppBuildException {

ShiroConfig config = (ShiroConfig) me.getConfig().getConfig(Name);

me.getFactory(CacheFactory.class);

PropKit prop = me.getConfig().getUserProp();

RetryLimitHashedCredentialsMatcher retryLimitHashedCredentialsMatcher = new RetryLimitHashedCredentialsMatcher();

retryLimitHashedCredentialsMatcher.setHashAlgorithmName(prop.getValue(Dict.SHIRO_CREDENTIALS_MATCHER_HASHALGORITHMNAME, "md5"));

retryLimitHashedCredentialsMatcher.setHashIterations(prop.getInt(Dict.SHIRO_CREDENTIALS_MATCHER_HASHITERATIONS, 2));

retryLimitHashedCredentialsMatcher.setStoredCredentialsHexEncoded(prop.getBool(Dict.SHIRO_CREDENTIALS_MATCHER_STOREDCREDENTIALSHEXENCODED, true));

EhCacheManager ehCacheManager = new EhCacheManager();

EhCache cache = (EhCache) me.getConfig().getCacheManager();

ehCacheManager.setCacheManager(cache.getCacheManager());

JavaUuidSessionIdGenerator sessionIdGenerator = new JavaUuidSessionIdGenerator();

SimpleCookie sessionIdCookie = new SimpleCookie(prop.getValue(Dict.SHIRO_SESSION_COOKIENAME, "lc4e"));

sessionIdCookie.setMaxAge(prop.getInt(Dict.SHIRO_SESSION_IDCOOKIE_MAXAGE, -1));

sessionIdCookie.setHttpOnly(prop.getBool(Dict.SHIRO_SESSION_IDCOOKIE_HTTPONLY, true));

SimpleCookie rememberMeCookie = new SimpleCookie(prop.getValue(Dict.SHIRO_SESSION_REMEMBER_COOKIENAME, "rlc4e"));

rememberMeCookie.setHttpOnly(prop.getBool(Dict.SHIRO_SESSION_REMEMBER_ME_HTTPONLY, true));

rememberMeCookie.setMaxAge(prop.getInt(Dict.SHIRO_SESSION_REMEMBER_ME_MAXAGE, 2592000));

CookieRememberMeManager rememberMeManager = new CookieRememberMeManager();

rememberMeManager.setCipherKey(Base64.decode(prop.getValue(Dict.SECURITY_KEY, "4AvVhmFLUs0KTA3Kprsdag==")));

rememberMeManager.setCookie(rememberMeCookie);

EnterpriseCacheSessionDAO sessionDAO = new EnterpriseCacheSessionDAO();

sessionDAO.setActiveSessionsCacheName(prop.getValue(Dict.SHIRO_SESSION_ACTIVE_NAME, "shiro-activeSessionCache"));

sessionDAO.setSessionIdGenerator(sessionIdGenerator);

sessionDAO.setCacheManager(ehCacheManager);

config.getRealm().setCredentialsMatcher(retryLimitHashedCredentialsMatcher);

config.getRealm().setCachingEnabled(false);

config.getRealm().setCacheManager(ehCacheManager);

DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();

sessionValidationScheduler = new QuartzSessionValidationScheduler(sessionManager);

sessionValidationScheduler.setSessionValidationInterval(prop.getLong(Dict.SHIRO_SESSION_VALIDATIONINTERVAL, 1800000L));

sessionManager.setGlobalSessionTimeout(prop.getLong(Dict.SHIRO_SESSION_GLOBALSESSIONTIMEOUT, 1800000L));

sessionManager.setSessionDAO(sessionDAO);

sessionManager.setSessionValidationInterval(prop.getLong(Dict.SHIRO_SESSION_VALIDATIONINTERVAL, 360000L));

sessionManager.setSessionValidationScheduler(sessionValidationScheduler);

sessionManager.setSessionIdCookieEnabled(prop.getBool(Dict.SHIRO_SESSION_IDCOOKIEENABLED, true));

sessionManager.setSessionIdCookie(sessionIdCookie);

sessionValidationScheduler.setSessionManager(sessionManager);

defaultWebSecurityManager = new DefaultWebSecurityManager(config.getRealm());

defaultWebSecurityManager.setCacheManager(ehCacheManager);

defaultWebSecurityManager.setRememberMeManager(rememberMeManager);

defaultWebSecurityManager.setSessionManager(sessionManager);

ServletContext servletContext = me.getContext();

ShiroLoader shiroLoader = new ShiroLoader();

shiroLoader.initEnvironment(servletContext);

WebEnvironment environment = (WebEnvironment) servletContext.getAttribute(ShiroLoader.ENVIRONMENT_ATTRIBUTE_KEY);

((MutableWebEnvironment) environment).setWebSecurityManager(defaultWebSecurityManager);

servletContext.setAttribute(ShiroLoader.ENVIRONMENT_ATTRIBUTE_KEY, environment);

return false;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值