Which version are you using ?

On Tue, Jul 1, 2014 at 7:26 AM, charmpeach <[email protected]> wrote:

> I'm adding shiro to an existing Web application(using spring mvc), but I
> always got NullPointerException.
>
> Here are the error message:
>
>     Servlet.service() for servlet [jsp] in context with path [/haha-web]
> threw exception [Filtered request failed.] with root cause
>         java.lang.NullPointerException
>                 at
>
> org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:125)
>                 at
>
> org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(DefaultSecurityManager.java:456)
>                 at
>
> org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(DefaultSecurityManager.java:442)
>                 at
>
> org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:338)
>                 at
> org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846)
>                 at
>
> org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(WebSubject.java:148)
>                 at
>
> org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(AbstractShiroFilter.java:292)
>                 at
>
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359)
>                 at
>
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>                 at
>
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
>                 at
>
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
>                 at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>                 at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>                 at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>                 at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>                 at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>                 at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>                 at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>                 at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>                 at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>                 at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>                 at
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>                 at
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>                 at
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
>                 at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>                 at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>                 at java.lang.Thread.run(Thread.java:745)
>
>     org.apache.catalina.core.StandardWrapperValve invoke
>     Servlet.service() for servlet [static] in context with path [/haha-web]
> threw exception [Filtered request failed.] with root cause
>         java.lang.NullPointerException
>                 at
>
> org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:125)
>                 at
>
> org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(DefaultSecurityManager.java:456)
>                 at
>
> org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(DefaultSecurityManager.java:442)
>                 at
>
> org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:338)
>                 at
> org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846)
>                 at
>
> org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(WebSubject.java:148)
>                 at
>
> org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(AbstractShiroFilter.java:292)
>                 at
>
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359)
>                 at
>
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>                 at
>
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
>                 at
>
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
>                 at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>                 at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>                 at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>                 at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>                 at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>                 at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>                 at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>                 at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>                 at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>                 at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>                 at
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>                 at
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>                 at
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
>                 at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>                 at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>                 at java.lang.Thread.run(Thread.java:745)
>
>     org.apache.catalina.core.StandardWrapperValve invoke
>     Servlet.service() for servlet [static] in context with path [/haha-web]
> threw exception [Filtered request failed.] with root cause
>         java.lang.NullPointerException
>                 at
>
> org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:125)
>                 at
>
> org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(DefaultSecurityManager.java:456)
>                 at
>
> org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(DefaultSecurityManager.java:442)
>                 at
>
> org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:338)
>                 at
> org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846)
>                 at
>
> org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(WebSubject.java:148)
>                 at
>
> org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(AbstractShiroFilter.java:292)
>                 at
>
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359)
>                 at
>
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>                 at
>
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
>                 at
>
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
>                 at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>                 at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>                 at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>                 at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>                 at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>                 at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>                 at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>                 at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>                 at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>                 at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>                 at
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>                 at
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>                 at
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
>                 at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>                 at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>                 at java.lang.Thread.run(Thread.java:745)
>
> I checked the source code of Shiro, seems the sessionManager is Null.
>
> Here are part of my shiro config:
>
>     <?xml version="1.0" encoding="UTF-8"?>
>     <beans xmlns="http://www.springframework.org/schema/beans";
>            xmlns:util="http://www.springframework.org/schema/util";
>            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>            xsi:schemaLocation="
>            http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
>            http://www.springframework.org/schema/util
> http://www.springframework.org/schema/util/spring-util.xsd";>
>
>         <bean id="cacheManager"
> class="org.apache.shiro.cache.ehcache.EhCacheManager">
>             <property name="cacheManagerConfigFile"
> value="classpath:spring/ehcache.xml"/>
>         </bean>
>
>         <bean id="credentialsMatcher"
> class="org.haha.security.credentials.RetryLimitHashedCredentialsMatcher">
>                 <constructor-arg ref="cacheManager"/>
>                 <property name="hashAlgorithmName" value="md5"/>
>                 <property name="hashIterations" value="2"/>
>                 <property name="storedCredentialsHexEncoded" value="true"/>
>         </bean>
>
>         <bean id="userRealm" class="org.haha.security.realm.UserRealm">
>                 <property name="operatorService" ref="operatorService"/>
>                 <property name="credentialsMatcher"
> ref="credentialsMatcher"/>
>             <property name="cachingEnabled" value="true"/>
>             <property name="authenticationCachingEnabled" value="true"/>
>             <property name="authenticationCacheName"
> value="authenticationCache"/>
>             <property name="authorizationCachingEnabled" value="true"/>
>             <property name="authorizationCacheName"
> value="authorizationCache"/>
>         </bean>
>
>         <bean id="sessionIdGenerator"
> class="org.apache.shiro.session.mgt.eis.JavaUuidSessionIdGenerator"/>
>
>         <bean id="sessionIdCookie"
> class="org.apache.shiro.web.servlet.SimpleCookie">
>             <constructor-arg value="sid"/>
>             <property name="httpOnly" value="true"/>
>             <property name="maxAge" value="180000"/>
>         </bean>
>
>         <bean id="sessionDAO"
> class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
>             <property name="activeSessionsCacheName"
> value="shiro-activeSessionCache"/>
>             <property name="sessionIdGenerator" ref="sessionIdGenerator"/>
>         </bean>
>
>         <bean id="sessionValidationScheduler"
>
> class="org.apache.shiro.session.mgt.quartz.QuartzSessionValidationScheduler">
>                 <property name="sessionValidationInterval"
> value="1800000"/>
>                 <property name="sessionManager" ref="sessionManager"/>
>         </bean>
>
>         <bean id="sessionManager"
> class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
>                 <property name="globalSessionTimeout" value="1800000"/>
>                 <property name="deleteInvalidSessions" value="true"/>
>                 <property name="sessionValidationSchedulerEnabled"
> value="true"/>
>                 <property name="sessionValidationScheduler"
> ref="sessionValidationScheduler"/>
>                 <property name="sessionDAO" ref="sessionDAO"/>
>                 <property name="sessionIdCookieEnabled" value="true"/>
>                 <property name="sessionIdCookie" ref="sessionIdCookie"/>
>         </bean>
>
>         <bean id="securityManager"
> class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
>                 <property name="realm" ref="userRealm"/>
>                 <property name="sessionManager" ref="sessionManager"/>
>                 <property name="cacheManager" ref="cacheManager"/>
>         </bean>
>
>         <bean
> class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
>                 <property name="staticMethod"
> value="org.apache.shiro.SecurityUtils.setSecurityManager"/>
>                 <property name="arguments" ref="securityManager"/>
>         </bean>
>
>         <bean id="lifecycleBeanPostProcessor"
> class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>
>
>         <bean id="shiroFilter"
> class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
>                 <property name="securityManager" ref="securityManager"/>
>                 <property name="loginUrl" value="/home"/>
>                 <property name="successUrl" value="/home"/>
>                 <property name="unauthorizedUrl" value="/home"/>
>                 <property name="filterChainDefinitions">
>                         <value>
>                                 /js/** = anon
>                                 /api-js/** = anon
>                                 /img/** = anon
>                                 /css/** = anon
>                                 /** = authc
>                         </value>
>                 </property>
>         </bean>
>
>     </beans>
>
> I'm new to Shiro, and I've tried everything I could in the past 4 days T_T,
> hope someone can help me.
>
>
>
> --
> View this message in context:
> http://shiro-user.582556.n2.nabble.com/NullPointerException-using-Shiro-tp7580049.html
> Sent from the Shiro User mailing list archive at Nabble.com.
>

Reply via email to