Can you post the full stack trace?
Does this happen every time or sporadically?
My guess is the thread that’s executing isn’t correctly set up to handle 
session management


> On Dec 29, 2017, at 9:24 AM, Rob Young <[email protected]> wrote:
> 
> 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 
> <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] <mailto:[email protected]>
> 

Reply via email to