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. >
