Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2204

springboot shiro+redis JedisException: Could not return the broken resource to the pool

$
0
0

commons-pool-evictor thread occasionally throws Error while closeredis.clients.jedis.exceptions.JedisException: Could not return the broken resource to the poolthis my config .the exception does not affect operation

@Configurationpublic class ShiroConfig implements EnvironmentAware{

@Beanpublic ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {    ShiroFilterFactoryBean factoryBean = new CustomShiroFilterFactoryBean();    factoryBean.setSecurityManager(securityManager());    factoryBean.setLoginUrl("/login");    factoryBean.setSuccessUrl("/index");    Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>();    filterChainDefinitionMap.put("/css/**", "anon");    filterChainDefinitionMap.put("/js/**", "anon");    filterChainDefinitionMap.put("/img/**", "anon");    filterChainDefinitionMap.put("/auth/login", "anon");    filterChainDefinitionMap.put("/*Controller/*", "user");    filterChainDefinitionMap.put("/index", "authc");    factoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);    return factoryBean;}@Beanpublic MethodInvokingFactoryBean methodInvokingFactoryBean() {    MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();    bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");    bean.setArguments(securityManager());    return bean;}@Bean(name = "rememberAuthFilter")public RememberAuthenticationFilter rememberAuthenticationFilter() {    RememberAuthenticationFilter filter = new RememberAuthenticationFilter();    filter.setUsernameParam("userName");    return filter;}@Beanpublic SimpleCookie rememberMeCookie(){    SimpleCookie simpleCookie = new SimpleCookie("rememberMe");    simpleCookie.setHttpOnly(true);    simpleCookie.setPath("/");    simpleCookie.setMaxAge(2592000);    return simpleCookie;}@Beanpublic CookieRememberMeManager rememberMeManager(){    CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();    cookieRememberMeManager.setCookie(rememberMeCookie());    cookieRememberMeManager.setCipherKey(Base64.decode("*******"));    return cookieRememberMeManager;}@Beanpublic FormAuthenticationFilter formAuthenticationFilter(){    FormAuthenticationFilter formAuthenticationFilter = new FormAuthenticationFilter();    formAuthenticationFilter.setRememberMeParam("rememberMe");    return formAuthenticationFilter;}@Beanpublic FilterRegistrationBean registrationBean() {    FilterRegistrationBean filterRegistration = new FilterRegistrationBean();    filterRegistration.setFilter(new DelegatingFilterProxy("shiroFilter"));    filterRegistration.addInitParameter("targetFilterLifecycle", "true");    filterRegistration.addUrlPatterns("/*");    filterRegistration.addUrlPatterns("/WEB-INF/jsp/*");    filterRegistration.addUrlPatterns("/login");    filterRegistration.addUrlPatterns("/index");    filterRegistration.addUrlPatterns("/logout");    return filterRegistration;}@Beanpublic SecurityManager securityManager() {    DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();    securityManager.setRealm(myShiroRealm());    securityManager.setCacheManager(cacheManager());    securityManager.setSessionManager(sessionManager());    return securityManager;}@Beanpublic CustomRealm myShiroRealm() {    CustomRealm customRealm = new CustomRealm();    return customRealm;}public RedisCacheManager cacheManager() {    RedisCacheManager redisCacheManager = new RedisCacheManager();    redisCacheManager.setRedisManager(redisManager());    return redisCacheManager;}public RedisManager redisManager() {    RedisManager redisManager = new RedisManager();    Optional<String> hostOpt = Optional.ofNullable(environment.getProperty("spring.redis.host"));    String host = hostOpt.orElse("localhost");    Optional<String> portOpt = Optional.ofNullable(environment.getProperty("spring.redis.port"));    int port = Integer.parseInt(portOpt.orElse("6379"));    Optional<String> timeoutOpt = Optional.ofNullable(environment.getProperty("spring.redis.timeout"));    int timeout = Integer.parseInt(timeoutOpt.orElse("2000"));    Optional<String> expireOpt = Optional.ofNullable(environment.getProperty("spring.redis.expire"));    int expire = Integer.parseInt(expireOpt.orElse("2000"));    Optional<String> passwordOpt=Optional.ofNullable(environment.getProperty("spring.redis.password"));    String password = passwordOpt.orElse("");    redisManager.setHost(host);    redisManager.setPort(port);    redisManager.setExpire(expire);    redisManager.setTimeout(timeout);    if(password!=null&&!"".equals(password)){        redisManager.setPassword(password);    }    return redisManager;}@Beanpublic DefaultWebSessionManager sessionManager() {    DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();    sessionManager.setSessionDAO(redisSessionDAO());

sessionManager.setGlobalSessionTimeout(Long.valueOf(environment.getProperty("core.sessionMaxTimeout")));return sessionManager;}

@Beanpublic RedisSessionDAO redisSessionDAO() {    RedisSessionDAO redisSessionDAO = new RedisSessionDAO();    redisSessionDAO.setRedisManager(redisManager());    Optional<String> property = Optional.ofNullable(environment.getProperty("server.servlet.context-path"));    String context = property.orElse("/sso");    redisSessionDAO.setKeyPrefix("shiro:session:" + context.replace("/","") +":");    return redisSessionDAO;}@Beanpublic DefaultAdvisorAutoProxyCreator getDefaultAdvisorAutoProxyCreator() {    DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();    defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);    return defaultAdvisorAutoProxyCreator;}@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager){    AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();    authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);    return authorizationAttributeSourceAdvisor;}private Environment environment;@Overridepublic void setEnvironment(Environment environment) {    this.environment = environment;}

}


Viewing all articles
Browse latest Browse all 2204

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>