Hi there, I'm trying to add distributed session management to a JSF web application. Currently it uses shiro 1.3.2, and pac4j to do oauth operations (plus a user/password based login option.)
We are heavily into using redis for other operations, so I'm trying to use this project ( https://github.com/alexxiyang/shiro-redis ) to act as a data store for sessions. I can see sessions getting stored in redis, but the JSF pages throw errors related to Omnifaces. Just curious if anyone on the list has seen this error or had ideas for what I'm doing wrong. I've forked the project above to convert it to java 8. Debugged this for a while yesterday, I can't decide where the culprit is at the moment. Kind regards, Rob Shiro.ini [main] #redisManager redisManager = org.crazycake.shiro.RedisManager #optional if you don't specify host the default value is 127.0.0.1 redisManager.host = dashboard-redis #optional , default value: 6379 redisManager.port = 6379 #optional, default value:0 .The expire time is in second #redisManager.expire = 30 #optional, timeout for jedis try to connect to redis server(In milliseconds), not equals to expire time! redisManager.timeout = 300 #optional, password for redis server # redisManager.password = #============redisSessionDAO============= redisSessionDAO = org.crazycake.shiro.RedisSessionDAO redisSessionDAO.keyPrefix = user:session: redisSessionDAO.redisManager = $redisManager sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager sessionManager.sessionDAO = $redisSessionDAO securityManager.sessionManager = $sessionManager #============redisCacheManager=========== cacheManager = org.crazycake.shiro.RedisCacheManager cacheManager.keyPrefix = users:security:authz: cacheManager.redisManager = $redisManager #securityManager.cacheManager = $cacheManager roleAdminAuthGenerator = xxxx googleOidClient = org.pac4j.oidc.client.GoogleOidcClient googleOidClient.clientID = IDHERE googleOidClient.secret = SECRETHERE googleOidClient.useNonce = true googleOidClient.authorizationGenerator = $roleAdminAuthGenerator googleCallback = com.customCallback.ABC clients = org.pac4j.core.client.Clients clients.callbackUrl = $googleCallback clients.clients = $googleOidClient authc = org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter authc.loginUrl = /login.xhtml user.loginUrl = /login.xhtml requireRoleAdmin = org.pac4j.core.authorization.authorizer.RequireAnyRoleAuthorizer requireRoleAdmin.elements = ROLE_ADMIN config = org.pac4j.core.config.Config config.clients = $clients config.authorizers = admin:$requireRoleAdmin pac4jRealm = io.buji.pac4j.realm.Pac4jRealm cognitoRealm = com.custom.Realm pac4jSubjectFactory = io.buji.pac4j.subject.Pac4jSubjectFactory securityManager.subjectFactory = $pac4jSubjectFactory securityManager.rememberMeManager.cipherKey = 0x22e93dafc56fd676485581753423567C oidcSecurityFilter = io.buji.pac4j.filter.SecurityFilter oidcSecurityFilter.config = $config oidcSecurityFilter.clients = GoogleOidcClient callbackFilter = io.buji.pac4j.filter.CallbackFilter callbackFilter.config = $config callbackFilter.multiProfile = true Stacktrace ========================= [#|2017-12-29T05:05:45.737+0000|SEVERE|glassfish 4.1|javax.enterprise.resource.webcontainer.jsf.application|_ThreadID=89;_ThreadName=http-listener-1(5);_TimeMillis=1514523945737;_LevelValue=1000;| Error Rendering View[/index.xhtml] java.lang.NullPointerException at org.jboss.weld.context.beanstore.http.AbstractSessionBeanStore.getLockStore(AbstractSessionBeanStore.java:112) at org.jboss.weld.context.beanstore.AttributeBeanStore.lock(AttributeBeanStore.java:209) at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:90) at org.jboss.weld.context.PassivatingContextWrapper$AbstractPassivatingContextWrapper.get(PassivatingContextWrapper.java:76) at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:101) at org.jboss.weld.bean.ContextualInstanceStrategy$CachingContextualInstanceStrategy.get(ContextualInstanceStrategy.java:178) at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50) at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:99) at org.jboss.weld.bean.proxy.ProxyMethodHandler.getInstance(ProxyMethodHandler.java:125) at org.omnifaces.cdi.viewscope.ViewScopeStorageInSession$Proxy$_$$_WeldClientProxy.getBeanStorageId(Unknown Source) at org.omnifaces.cdi.viewscope.ViewScopeManager.getBeanStorage(ViewScopeManager.java:174) at org.omnifaces.cdi.viewscope.ViewScopeManager.getBean(ViewScopeManager.java:125) at org.omnifaces.cdi.viewscope.ViewScopeManager$Proxy$_$$_WeldClientProxy.getBean(Unknown Source) at org.omnifaces.cdi.viewscope.ViewScopeContext.get(ViewScopeContext.java:67) at org.jboss.weld.context.PassivatingContextWrapper$AbstractPassivatingContextWrapper.get(PassivatingContextWrapper.java:70) at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:96) at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50) at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:761) at org.jboss.weld.el.AbstractWeldELResolver.lookup(AbstractWeldELResolver.java:107) at org.jboss.weld.el.AbstractWeldELResolver.getValue(AbstractWeldELResolver.java:90) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:188) at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) -- Rob Young [email protected]
