You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@shiro.apache.org by Harshdeep S Jawanda <hs...@gmail.com> on 2017/03/13 04:41:14 UTC

Setting login expiry for Shiro on GAE

Hi,

I wondered if anybody could help me with setting the session cookie
lifetime for Shiro on GAE.

I tried with DefaultWebSessionManager but I get an AccessControlException:

java.security.AccessControlException: access denied
("java.lang.RuntimePermission" "modifyThreadGroup")

Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000) but that
doesn't work either. The JSESSIONID cookie continues to show an Expires
value of "At end of session".

Regards,
Harshdeep S Jawanda

Re: Setting login expiry for Shiro on GAE

Posted by Brian Demers <br...@gmail.com>.
You can set them both.  The session timeout refers to the interval between
requests (default to 30 min).  So if a user doesn't make a request for 30
min the session becomes inactive.

The cookie timeout is how long the cookie should live on the client
(defaults to when the browser closes).

If a user does NOT make a request in 30 minute, the cookie would be
removed, and user redirected to the login page.



On Thu, Mar 16, 2017 at 12:27 PM, Harshdeep S Jawanda <hs...@gmail.com>
wrote:

> The issue seems to have magically resolved itself: can't reproduce it.
>
> In general, do I need to set the max age of both the cookie and the
> session, or is it enough to set the max age of the cookie?
>
> Thanks you so much for your help!!
>
> Regards,
> Harshdeep S Jawanda
>
> On 16 March 2017 at 21:29, Brian Demers <br...@gmail.com> wrote:
>
>> I usually have url rewriting turned off due to session fixation, but if
>> you put a simple sample together, i bet we can help you out.
>>
>> On Thu, Mar 16, 2017 at 11:42 AM, Harshdeep S Jawanda <
>> hsjawanda@gmail.com> wrote:
>>
>>> Btw, per my browser's settings, it does allow cookies.
>>>
>>> Sent from my Moto X2
>>>
>>> On 16-Mar-2017 21:11, "Harshdeep S Jawanda" <hs...@gmail.com> wrote:
>>>
>>>> It does stop the exception from happening (a million thanks!!!), but
>>>> now there's a new issue: the redirection post -login (which was successful:
>>>> the correct username is printed in the logs) isn't working properly.
>>>>
>>>> Browser gives the message that the website is not redirecting properly.
>>>> The post-redirect URL (in browser's location bar) looks like:
>>>> example.com//;JSESSIONID=xyz (in this case it's supposed to redirect
>>>> back to homepage). I think it's the "//" part that might be causing the
>>>> problem.
>>>>
>>>> Investigating...
>>>>
>>>> Sent from my Moto X2
>>>>
>>>> On 16-Mar-2017 20:37, "Brian Demers" <br...@gmail.com> wrote:
>>>>
>>>> It should, give it a shot
>>>>
>>>> On Thu, Mar 16, 2017 at 10:49 AM, Harshdeep S Jawanda <
>>>> hsjawanda@gmail.com> wrote:
>>>>
>>>>>
>>>>> On 16 March 2017 at 19:41, Brian Demers <br...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> You can disable session validation:
>>>>>> https://shiro.apache.org/session-management.html#disabling-s
>>>>>> ession-validation
>>>>>>
>>>>>>
>>>>> ​And that should solve my problems when using
>>>>> DefaultWebSessionManager?​
>>>>>
>>>>> Regards,
>>>>> Harshdeep S Jawanda
>>>>>
>>>>
>>>>
>>>>
>>
>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
The issue seems to have magically resolved itself: can't reproduce it.

In general, do I need to set the max age of both the cookie and the
session, or is it enough to set the max age of the cookie?

Thanks you so much for your help!!

Regards,
Harshdeep S Jawanda

On 16 March 2017 at 21:29, Brian Demers <br...@gmail.com> wrote:

> I usually have url rewriting turned off due to session fixation, but if
> you put a simple sample together, i bet we can help you out.
>
> On Thu, Mar 16, 2017 at 11:42 AM, Harshdeep S Jawanda <hsjawanda@gmail.com
> > wrote:
>
>> Btw, per my browser's settings, it does allow cookies.
>>
>> Sent from my Moto X2
>>
>> On 16-Mar-2017 21:11, "Harshdeep S Jawanda" <hs...@gmail.com> wrote:
>>
>>> It does stop the exception from happening (a million thanks!!!), but now
>>> there's a new issue: the redirection post -login (which was successful: the
>>> correct username is printed in the logs) isn't working properly.
>>>
>>> Browser gives the message that the website is not redirecting properly.
>>> The post-redirect URL (in browser's location bar) looks like:
>>> example.com//;JSESSIONID=xyz (in this case it's supposed to redirect
>>> back to homepage). I think it's the "//" part that might be causing the
>>> problem.
>>>
>>> Investigating...
>>>
>>> Sent from my Moto X2
>>>
>>> On 16-Mar-2017 20:37, "Brian Demers" <br...@gmail.com> wrote:
>>>
>>> It should, give it a shot
>>>
>>> On Thu, Mar 16, 2017 at 10:49 AM, Harshdeep S Jawanda <
>>> hsjawanda@gmail.com> wrote:
>>>
>>>>
>>>> On 16 March 2017 at 19:41, Brian Demers <br...@gmail.com> wrote:
>>>>
>>>>> You can disable session validation:
>>>>> https://shiro.apache.org/session-management.html#disabling-s
>>>>> ession-validation
>>>>>
>>>>>
>>>> ​And that should solve my problems when using DefaultWebSessionManager?​
>>>>
>>>> Regards,
>>>> Harshdeep S Jawanda
>>>>
>>>
>>>
>>>
>

Re: Setting login expiry for Shiro on GAE

Posted by Brian Demers <br...@gmail.com>.
I usually have url rewriting turned off due to session fixation, but if you
put a simple sample together, i bet we can help you out.

On Thu, Mar 16, 2017 at 11:42 AM, Harshdeep S Jawanda <hs...@gmail.com>
wrote:

> Btw, per my browser's settings, it does allow cookies.
>
> Sent from my Moto X2
>
> On 16-Mar-2017 21:11, "Harshdeep S Jawanda" <hs...@gmail.com> wrote:
>
>> It does stop the exception from happening (a million thanks!!!), but now
>> there's a new issue: the redirection post -login (which was successful: the
>> correct username is printed in the logs) isn't working properly.
>>
>> Browser gives the message that the website is not redirecting properly.
>> The post-redirect URL (in browser's location bar) looks like:
>> example.com//;JSESSIONID=xyz (in this case it's supposed to redirect
>> back to homepage). I think it's the "//" part that might be causing the
>> problem.
>>
>> Investigating...
>>
>> Sent from my Moto X2
>>
>> On 16-Mar-2017 20:37, "Brian Demers" <br...@gmail.com> wrote:
>>
>> It should, give it a shot
>>
>> On Thu, Mar 16, 2017 at 10:49 AM, Harshdeep S Jawanda <
>> hsjawanda@gmail.com> wrote:
>>
>>>
>>> On 16 March 2017 at 19:41, Brian Demers <br...@gmail.com> wrote:
>>>
>>>> You can disable session validation:
>>>> https://shiro.apache.org/session-management.html#disabling-s
>>>> ession-validation
>>>>
>>>>
>>> ​And that should solve my problems when using DefaultWebSessionManager?​
>>>
>>> Regards,
>>> Harshdeep S Jawanda
>>>
>>
>>
>>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
Btw, per my browser's settings, it does allow cookies.

Sent from my Moto X2

On 16-Mar-2017 21:11, "Harshdeep S Jawanda" <hs...@gmail.com> wrote:

> It does stop the exception from happening (a million thanks!!!), but now
> there's a new issue: the redirection post -login (which was successful: the
> correct username is printed in the logs) isn't working properly.
>
> Browser gives the message that the website is not redirecting properly.
> The post-redirect URL (in browser's location bar) looks like:
> example.com//;JSESSIONID=xyz (in this case it's supposed to redirect back
> to homepage). I think it's the "//" part that might be causing the problem.
>
> Investigating...
>
> Sent from my Moto X2
>
> On 16-Mar-2017 20:37, "Brian Demers" <br...@gmail.com> wrote:
>
> It should, give it a shot
>
> On Thu, Mar 16, 2017 at 10:49 AM, Harshdeep S Jawanda <hsjawanda@gmail.com
> > wrote:
>
>>
>> On 16 March 2017 at 19:41, Brian Demers <br...@gmail.com> wrote:
>>
>>> You can disable session validation:
>>> https://shiro.apache.org/session-management.html#disabling-s
>>> ession-validation
>>>
>>>
>> ​And that should solve my problems when using DefaultWebSessionManager?​
>>
>> Regards,
>> Harshdeep S Jawanda
>>
>
>
>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
It does stop the exception from happening (a million thanks!!!), but now
there's a new issue: the redirection post -login (which was successful: the
correct username is printed in the logs) isn't working properly.

Browser gives the message that the website is not redirecting properly. The
post-redirect URL (in browser's location bar) looks like:
example.com//;JSESSIONID=xyz (in this case it's supposed to redirect back
to homepage). I think it's the "//" part that might be causing the problem.

Investigating...

Sent from my Moto X2

On 16-Mar-2017 20:37, "Brian Demers" <br...@gmail.com> wrote:

It should, give it a shot

On Thu, Mar 16, 2017 at 10:49 AM, Harshdeep S Jawanda <hs...@gmail.com>
wrote:

>
> On 16 March 2017 at 19:41, Brian Demers <br...@gmail.com> wrote:
>
>> You can disable session validation:
>> https://shiro.apache.org/session-management.html#disabling-s
>> ession-validation
>>
>>
> ​And that should solve my problems when using DefaultWebSessionManager?​
>
> Regards,
> Harshdeep S Jawanda
>

Re: Setting login expiry for Shiro on GAE

Posted by Brian Demers <br...@gmail.com>.
It should, give it a shot

On Thu, Mar 16, 2017 at 10:49 AM, Harshdeep S Jawanda <hs...@gmail.com>
wrote:

>
> On 16 March 2017 at 19:41, Brian Demers <br...@gmail.com> wrote:
>
>> You can disable session validation:
>> https://shiro.apache.org/session-management.html#disabling-
>> session-validation
>>
>>
> ​And that should solve my problems when using DefaultWebSessionManager?​
>
> Regards,
> Harshdeep S Jawanda
>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
On 16 March 2017 at 19:41, Brian Demers <br...@gmail.com> wrote:

> You can disable session validation:
> https://shiro.apache.org/session-management.html#
> disabling-session-validation
>
>
​And that should solve my problems when using DefaultWebSessionManager?​

Regards,
Harshdeep S Jawanda

Re: Setting login expiry for Shiro on GAE

Posted by Brian Demers <br...@gmail.com>.
You can disable session validation:
https://shiro.apache.org/session-management.html#disabling-session-validation

On Wed, Mar 15, 2017 at 5:19 PM, Harshdeep S Jawanda <hs...@gmail.com>
wrote:

> Seems my email from 5 minutes ago may not have gotten send properly...
> strange. Anyway:
>
> When using DefaultWebSessionManager: https://gist.github.com/hsjawa
> nda/9d360ef4e890e0ee7f61f184d4ca42b1
>
> When using ServletContainerSessionManager: https://gist.github.com/hsjawa
> nda/711e5ef8cc4ed95138b725f3c3625c74
>
> Regards,
> Harshdeep S Jawanda
>
> On 16 March 2017 at 01:26, Brian Demers <br...@gmail.com> wrote:
>
>> The formatting of the stacktraces is missing in the email, making it
>> difficult to read.
>> Can you reformat it, or use a Github gist ?
>>
>> On Tue, Mar 14, 2017 at 1:34 PM, Harshdeep S Jawanda <hsjawanda@gmail.com
>> > wrote:
>>
>>> Do the stack traces give you any idea?
>>>
>>> Sent from my Moto X2
>>>
>>> On 14-Mar-2017 21:31, "Harshdeep S Jawanda" <hs...@gmail.com> wrote:
>>>
>>>> Second try...
>>>>
>>>> When using DefaultWebSessionManager:
>>>>
>>>> Uncaught exception from servlet
>>>> java.security.AccessControlException: access denied
>>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>>     at java.security.AccessControlContext.checkPermission(AccessCon
>>>> trolContext.java:484)
>>>>     at java.security.AccessController.checkPermission(AccessControl
>>>> ler.java:698)
>>>>     at java.lang.SecurityManager.checkPermission(SecurityManager.ja
>>>> va:549)
>>>>     at com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkPermission(CustomSecurityManager.java:55)
>>>>     at com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkAccess(CustomSecurityManager.java:136)
>>>>     at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
>>>>     at java.lang.Thread.init(Thread.java:391)
>>>>     at java.lang.Thread.init(Thread.java:349)
>>>>     at java.lang.Thread.<init>(Thread.java:461)
>>>>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler$1.newThread(ExecutorServiceSessionValidationSched
>>>> uler.java:87)
>>>>     at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(Thread
>>>> PoolExecutor.java:600)
>>>>     at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPool
>>>> Executor.java:943)
>>>>     at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(Threa
>>>> dPoolExecutor.java:1635)
>>>>     at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>>> ute(ScheduledThreadPoolExecutor.java:307)
>>>>     at java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>>> ixedRate(ScheduledThreadPoolExecutor.java:566)
>>>>     at java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>>> vice.scheduleAtFixedRate(Executors.java:695)
>>>>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler.enableSessionValidation(ExecutorServiceSessionVal
>>>> idationScheduler.java:92)
>>>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232)
>>>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessi
>>>> onManager.java:86)
>>>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.doGetSession(AbstractValidatingSessionManager.java:114)
>>>>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>>> okupSession(AbstractNativeSessionManager.java:108)
>>>>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>>> tSession(AbstractNativeSessionManager.java:100)
>>>>     at org.apache.shiro.mgt.SessionsSecurityManager.getSession(Sess
>>>> ionsSecurityManager.java:125)
>>>>     at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSe
>>>> ssion(DefaultSecurityManager.java:456)
>>>>     at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>>> efaultSecurityManager.java:442)
>>>>     at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(De
>>>> faultSecurityManager.java:338)
>>>>     at org.apache.shiro.subject.Subject$Builder.buildSubject(Subjec
>>>> t.java:846)
>>>>     at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubj
>>>> ect(WebSubject.java:148)
>>>>     at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubje
>>>> ct(AbstractShiroFilter.java:292)
>>>>     at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInt
>>>> ernal(AbstractShiroFilter.java:359)
>>>>     at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
>>>> ncePerRequestFilter.java:125)
>>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>>> r(ServletHandler.java:1157)
>>>>     at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyF
>>>> ilter.java:48)
>>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>>> r(ServletHandler.java:1157)
>>>>     at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>>> Filter(ParseBlobUploadFilter.java:125)
>>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>>> r(ServletHandler.java:1157)
>>>>     at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilt
>>>> er(SaveSessionFilter.java:37)
>>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>>> r(ServletHandler.java:1157)
>>>>     at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
>>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>>> r(ServletHandler.java:1157)
>>>>     at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>>> .doFilter(TransactionCleanupFilter.java:48)
>>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>>> r(ServletHandler.java:1157)
>>>>     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandl
>>>> er.java:388)
>>>>     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHa
>>>> ndler.java:216)
>>>>     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandl
>>>> er.java:182)
>>>>     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandl
>>>> er.java:765)
>>>>     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.
>>>> java:418)
>>>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>>> dle(AppVersionHandlerMap.java:257)
>>>>     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapp
>>>> er.java:152)
>>>>     at org.mortbay.jetty.Server.handle(Server.java:326)
>>>>     at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnectio
>>>> n.java:542)
>>>>     at org.mortbay.jetty.HttpConnection$RequestHandler.headerComple
>>>> te(HttpConnection.java:923)
>>>>     at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>>> ailable(RpcRequestParser.java:76)
>>>>     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>>>>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>>>> r.serviceRequest(JettyServletEngineAdapter.java:145)
>>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchServletRequest(JavaRuntime.java:559)
>>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchRequest(JavaRuntime.java:519)
>>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.ru
>>>> n(JavaRuntime.java:489)
>>>>     at com.google.tracing.TraceContext$TraceContextRunnable.runInCo
>>>> ntext(TraceContext.java:453)
>>>>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(T
>>>> raceContext.java:460)
>>>>     at com.google.tracing.CurrentContext.runInContext(CurrentContex
>>>> t.java:293)
>>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContextNoUnref(TraceContext.java:319)
>>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContext(TraceContext.java:311)
>>>>     at com.google.tracing.TraceContext$TraceContextRunnable.run(Tra
>>>> ceContext.java:457)
>>>>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
>>>> ThreadGroupPool.java:238)
>>>>     at java.lang.Thread.run(Thread.java:745)
>>>>
>>>> When using ServletContainerSessionManager:
>>>>
>>>> Failed startup of context com.google.apphosting.utils.je
>>>> tty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home
>>>> /apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
>>>> org.apache.shiro.config.ConfigurationException: Unable to determine if
>>>> property [sessionManager.sessionIdCookie.maxAge] represents a
>>>> java.util.Set
>>>>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(Re
>>>> flectionBuilder.java:264)
>>>>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(Refl
>>>> ectionBuilder.java:544)
>>>>     at org.apache.shiro.config.ReflectionBuilder.applySinglePropert
>>>> y(ReflectionBuilder.java:206)
>>>>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(Refl
>>>> ectionBuilder.java:167)
>>>>     at org.apache.shiro.config.ReflectionBuilder.buildObjects(Refle
>>>> ctionBuilder.java:124)
>>>>     at org.apache.shiro.config.IniSecurityManagerFactory.buildInsta
>>>> nces(IniSecurityManagerFactory.java:161)
>>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>>> rityManager(IniSecurityManagerFactory.java:124)
>>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>>> rityManager(IniSecurityManagerFactory.java:102)
>>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>>> ance(IniSecurityManagerFactory.java:88)
>>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>>> ance(IniSecurityManagerFactory.java:46)
>>>>     at org.apache.shiro.config.IniFactorySupport.createInstance(Ini
>>>> FactorySupport.java:123)
>>>>     at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFa
>>>> ctory.java:47)
>>>>     at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurity
>>>> Manager(IniWebEnvironment.java:203)
>>>>     at org.apache.shiro.web.env.IniWebEnvironment.configure(IniWebE
>>>> nvironment.java:99)
>>>>     at org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnviro
>>>> nment.java:92)
>>>>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.jav
>>>> a:45)
>>>>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.jav
>>>> a:40)
>>>>     at org.apache.shiro.web.env.EnvironmentLoader.createEnvironment
>>>> (EnvironmentLoader.java:221)
>>>>     at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(E
>>>> nvironmentLoader.java:133)
>>>>     at org.apache.shiro.web.env.EnvironmentLoaderListener.contextIn
>>>> itialized(EnvironmentLoaderListener.java:58)
>>>>     at org.mortbay.jetty.handler.ContextHandler.startContext(Contex
>>>> tHandler.java:548)
>>>>     at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>>>>     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppCo
>>>> ntext.java:1250)
>>>>     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHand
>>>> ler.java:517)
>>>>     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext
>>>> .java:467)
>>>>     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCy
>>>> cle.java:50)
>>>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.cre
>>>> ateHandler(AppVersionHandlerMap.java:203)
>>>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.get
>>>> Handler(AppVersionHandlerMap.java:176)
>>>>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>>>> r.serviceRequest(JettyServletEngineAdapter.java:133)
>>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchServletRequest(JavaRuntime.java:559)
>>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchRequest(JavaRuntime.java:519)
>>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.ru
>>>> n(JavaRuntime.java:489)
>>>>     at com.google.tracing.TraceContext$TraceContextRunnable.runInCo
>>>> ntext(TraceContext.java:453)
>>>>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(T
>>>> raceContext.java:460)
>>>>     at com.google.tracing.CurrentContext.runInContext(CurrentContex
>>>> t.java:293)
>>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContextNoUnref(TraceContext.java:319)
>>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContext(TraceContext.java:311)
>>>>     at com.google.tracing.TraceContext$TraceContextRunnable.run(Tra
>>>> ceContext.java:457)
>>>>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
>>>> ThreadGroupPool.java:238)
>>>>     at java.lang.Thread.run(Thread.java:745) Caused by:
>>>> java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
>>>> class 'class org.apache.shiro.web.session.m
>>>> gt.ServletContainerSessionManager'
>>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProp
>>>> erty(PropertyUtilsBean.java:1257)
>>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProp
>>>> erty(PropertyUtilsBean.java:808)
>>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(P
>>>> ropertyUtilsBean.java:884)
>>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDe
>>>> scriptor(PropertyUtilsBean.java:931)
>>>>     at org.apache.commons.beanutils.PropertyUtils.getPropertyDescri
>>>> ptor(PropertyUtils.java:498)
>>>>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(Re
>>>> flectionBuilder.java:251)
>>>>     ... 39 more
>>>>
>>>>
>>>> Regards,
>>>> Harshdeep S Jawanda
>>>>
>>>> On 14 March 2017 at 21:23, Harshdeep S Jawanda <hs...@gmail.com>
>>>> wrote:
>>>>
>>>>> This is from when I set the session manager to
>>>>> DefaultWebSessionManager (happens during server startup):
>>>>>
>>>>> java.security.AccessControlException: access denied
>>>>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>>>>> java.security.AccessControlContext.checkPermission(AccessCon
>>>>> trolContext.java:484
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessControlContext.java&line=484&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at java.security.AccessController.checkPermission(AccessControl
>>>>> ler.java:698
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessController.java&line=698&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>>>>> at com.google.apphosting.runtime.security.CustomSecurityManager
>>>>> .checkPermission(CustomSecurityManager.java:55) at
>>>>> com.google.apphosting.runtime.security.CustomSecurityManager
>>>>> .checkAccess(CustomSecurityManager.java:136) at
>>>>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>>>>> java.lang.Thread.init(Thread.java:391) at
>>>>> java.lang.Thread.init(Thread.java:349) at
>>>>> java.lang.Thread.<init>(Thread.java:461) at
>>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>>> nScheduler$1.newThread(ExecutorServiceSessionValidationSched
>>>>> uler.java:87
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=87&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>>>>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>>>>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>>>>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>>>> ute(ScheduledThreadPoolExecutor.java:307) at
>>>>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>>>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>>>>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>>>> vice.scheduleAtFixedRate(Executors.java:695) at
>>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>>> nScheduler.enableSessionValidation(ExecutorServiceSessionVal
>>>>> idationScheduler.java:92
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=92&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=232&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessi
>>>>> onManager.java:86
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=86&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>>> r.doGetSession(AbstractValidatingSessionManager.java:114
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=114&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>>>> okupSession(AbstractNativeSessionManager.java:108
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=108&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>>>> tSession(AbstractNativeSessionManager.java:100
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=100&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.mgt.SessionsSecurityManager.getSession(Sess
>>>>> ionsSecurityManager.java:125
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FSessionsSecurityManager.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(
>>>>> DefaultSecurityManager.java:456
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=456&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>>>> efaultSecurityManager.java:442
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=442&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(De
>>>>> faultSecurityManager.java:338
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=338&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.subject.Subject$Builder.buildSubject(Subjec
>>>>> t.java:846
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsubject%2FSubject.java&line=846&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(
>>>>> WebSubject.java:148
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fsubject%2FWebSubject.java&line=148&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(
>>>>> AbstractShiroFilter.java:292
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=292&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(
>>>>> AbstractShiroFilter.java:359
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=359&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
>>>>> ncePerRequestFilter.java:125
>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FOncePerRequestFilter.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>>>> Filter(ParseBlobUploadFilter.java:125) at
>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>>>> .doFilter(TransactionCleanupFilter.java:48) at
>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>>>>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>>>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>>>>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>>>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>>>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>>>>> lerWrapper.handle(HandlerWrapper.java:152) at
>>>>> org.mortbay.jetty.Server.handle(Server.java:326) at
>>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>>>>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>>>>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>>>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>>>>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>>>>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>>>>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>>> spatchServletRequest(JavaRuntime.java:559) at
>>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>>> .runInInheritedContext(TraceContext.java:311) at
>>>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>
>>>>> java.security.AccessControlException: access denied
>>>>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>>>>> java.security.AccessControlContext.checkPermission(AccessControlContext.java:484)
>>>>> at java.security.AccessController.checkPermission(AccessController.java:698)
>>>>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>>>>> at com.google.apphosting.runtime.security.CustomSecurityManager
>>>>> .checkPermission(CustomSecurityManager.java:55) at
>>>>> com.google.apphosting.runtime.security.CustomSecurityManager
>>>>> .checkAccess(CustomSecurityManager.java:136) at
>>>>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>>>>> java.lang.Thread.init(Thread.java:391) at
>>>>> java.lang.Thread.init(Thread.java:349) at
>>>>> java.lang.Thread.<init>(Thread.java:461) at
>>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>>> nScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
>>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>>>>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>>>>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>>>>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>>>> ute(ScheduledThreadPoolExecutor.java:307) at
>>>>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>>>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>>>>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>>>> vice.scheduleAtFixedRate(Executors.java:695) at
>>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>>> nScheduler.enableSessionValidation(ExecutorServiceSessionValidationScheduler.java:92)
>>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232)
>>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessionManager.java:86)
>>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>>> r.doGetSession(AbstractValidatingSessionManager.java:114) at
>>>>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>>>> okupSession(AbstractNativeSessionManager.java:108) at
>>>>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>>>> tSession(AbstractNativeSessionManager.java:100) at
>>>>> org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:125)
>>>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSe
>>>>> ssion(DefaultSecurityManager.java:456) at
>>>>> org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>>>> efaultSecurityManager.java:442) at org.apache.shiro.mgt.DefaultSe
>>>>> curityManager.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.createSubje
>>>>> ct(AbstractShiroFilter.java:292) at org.apache.shiro.web.servlet.A
>>>>> bstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359) at
>>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>>>> Filter(ParseBlobUploadFilter.java:125) at
>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>>>> .doFilter(TransactionCleanupFilter.java:48) at
>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>>>>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>>>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>>>>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>>>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>>>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>>>>> lerWrapper.handle(HandlerWrapper.java:152) at
>>>>> org.mortbay.jetty.Server.handle(Server.java:326) at
>>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>>>>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>>>>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>>>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>>>>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>>>>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>>>>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>>> spatchServletRequest(JavaRuntime.java:559) at
>>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>>> .runInInheritedContext(TraceContext.java:311) at
>>>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>
>>>>>
>>>>> The following is the exception when using
>>>>> ServletContainerSessionManager:
>>>>>
>>>>> Failed startup of context com.google.apphosting.utils.je
>>>>> tty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home
>>>>> /apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
>>>>> org.apache.shiro.config.ConfigurationException: Unable to determine
>>>>> if property [sessionManager.sessionIdCookie.maxAge] represents a
>>>>> java.util.Set at org.apache.shiro.config.Reflec
>>>>> tionBuilder.isTypedProperty(ReflectionBuilder.java:264) at
>>>>> org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:544)
>>>>> at org.apache.shiro.config.ReflectionBuilder.applySingleProperty(ReflectionBuilder.java:206)
>>>>> at org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:167)
>>>>> at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:124)
>>>>> at org.apache.shiro.config.IniSecurityManagerFactory.buildInsta
>>>>> nces(IniSecurityManagerFactory.java:161) at
>>>>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>>>> rityManager(IniSecurityManagerFactory.java:124) at
>>>>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>>>> rityManager(IniSecurityManagerFactory.java:102) at
>>>>> org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>>>> ance(IniSecurityManagerFactory.java:88) at
>>>>> org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>>>> ance(IniSecurityManagerFactory.java:46) at
>>>>> org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:123)
>>>>> at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:47)
>>>>> at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurity
>>>>> Manager(IniWebEnvironment.java:203) at org.apache.shiro.web.env.IniWe
>>>>> bEnvironment.configure(IniWebEnvironment.java:99) at
>>>>> org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:92)
>>>>> at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
>>>>> at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
>>>>> at org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(EnvironmentLoader.java:221)
>>>>> at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:133)
>>>>> at org.apache.shiro.web.env.EnvironmentLoaderListener.contextIn
>>>>> itialized(EnvironmentLoaderListener.java:58) at
>>>>> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
>>>>> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>>>>> at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
>>>>> at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
>>>>> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
>>>>> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.cre
>>>>> ateHandler(AppVersionHandlerMap.java:203) at
>>>>> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.get
>>>>> Handler(AppVersionHandlerMap.java:176) at
>>>>> com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>>>>> r.serviceRequest(JettyServletEngineAdapter.java:133) at
>>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>>> spatchServletRequest(JavaRuntime.java:559) at
>>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>>> .runInInheritedContext(TraceContext.java:311) at
>>>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>>>> at java.lang.Thread.run(Thread.java:745) Caused by:
>>>>> java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie'
>>>>> on class 'class org.apache.shiro.web.session.m
>>>>> gt.ServletContainerSessionManager' at org.apache.commons.beanutils.P
>>>>> ropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1257) at
>>>>> org.apache.commons.beanutils.PropertyUtilsBean.getNestedProp
>>>>> erty(PropertyUtilsBean.java:808) at org.apache.commons.beanutils.P
>>>>> ropertyUtilsBean.getProperty(PropertyUtilsBean.java:884) at
>>>>> org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDe
>>>>> scriptor(PropertyUtilsBean.java:931) at org.apache.commons.beanutils.P
>>>>> ropertyUtils.getPropertyDescriptor(PropertyUtils.java:498) at
>>>>> org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:251)
>>>>> ... 39 more
>>>>>
>>>>>
>>>>>
>>>>> Regards,
>>>>> Harshdeep S Jawanda
>>>>>
>>>>> On 14 March 2017 at 20:51, Brian Demers <br...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Can you post the stacktraces ?
>>>>>>
>>>>>>
>>>>>> On Tue, Mar 14, 2017 at 3:36 AM, Harshdeep S Jawanda <
>>>>>> hsjawanda@gmail.com> wrote:
>>>>>>
>>>>>>> Initially I was not explicitly setting the session manager in my
>>>>>>> shiro.ini, so it defaults to ServletContainerSessionManager.
>>>>>>> ServletContainerSessionManager doesn't have a sessionIdCookie property, so
>>>>>>> I get the NoSuchMethodException exception during startup (if I use
>>>>>>> securityManager.sessionManager.sessionIdCookie.maxAge in shiro.ini).
>>>>>>>
>>>>>>> If I try to explicitly set the session manager to
>>>>>>> DefaultWebSessionManager in shiro.ini, I get the previously mentioned
>>>>>>> AccessControlException, which, as far as I can make out, is because
>>>>>>> DefaultWebSessionManager must be trying to write to disk, and that is
>>>>>>> forbidden on Google App Engine.
>>>>>>>
>>>>>>> I also tried to do user.getSession().setTimeout(timeoutValue *
>>>>>>> 1000) immediately after user logs in (with ServletContainerSessionManager
>>>>>>> active), but that seems to have no effect. httpServletRequest.getSession(
>>>>>>> ).setMaxInactiveInterval(timeoutValue) didn't work either.
>>>>>>>
>>>>>>> Any suggestions? There must be a way to set session cookie timeout
>>>>>>> on GAE using Shiro...
>>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>> Harshdeep S Jawanda
>>>>>>>
>>>>>>> On 13 March 2017 at 20:22, Brian Demers <br...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> If you are using a shiro.ini the property would be:
>>>>>>>> securityManager.sessionManager.sessionIdCookie.maxAge = <int>
>>>>>>>>
>>>>>>>> Otherwise you can traverse your beans, something like:
>>>>>>>> sessionManger.getSessionIdCookie().setMaxAge(<int>)
>>>>>>>>
>>>>>>>> On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <
>>>>>>>> hsjawanda@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I wondered if anybody could help me with setting the session
>>>>>>>>> cookie lifetime for Shiro on GAE.
>>>>>>>>>
>>>>>>>>> I tried with DefaultWebSessionManager but I get an
>>>>>>>>> AccessControlException:
>>>>>>>>>
>>>>>>>>> java.security.AccessControlException: access denied
>>>>>>>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>>>>>>>
>>>>>>>>> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000)
>>>>>>>>> but that doesn't work either. The JSESSIONID cookie continues to show an
>>>>>>>>> Expires value of "At end of session".
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Harshdeep S Jawanda
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>
>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
Seems my email from 5 minutes ago may not have gotten send properly...
strange. Anyway:

When using DefaultWebSessionManager: https://gist.github.com/hsjawanda/
9d360ef4e890e0ee7f61f184d4ca42b1

When using ServletContainerSessionManager: https://gist.github.com/
hsjawanda/711e5ef8cc4ed95138b725f3c3625c74

Regards,
Harshdeep S Jawanda

On 16 March 2017 at 01:26, Brian Demers <br...@gmail.com> wrote:

> The formatting of the stacktraces is missing in the email, making it
> difficult to read.
> Can you reformat it, or use a Github gist ?
>
> On Tue, Mar 14, 2017 at 1:34 PM, Harshdeep S Jawanda <hs...@gmail.com>
> wrote:
>
>> Do the stack traces give you any idea?
>>
>> Sent from my Moto X2
>>
>> On 14-Mar-2017 21:31, "Harshdeep S Jawanda" <hs...@gmail.com> wrote:
>>
>>> Second try...
>>>
>>> When using DefaultWebSessionManager:
>>>
>>> Uncaught exception from servlet
>>> java.security.AccessControlException: access denied
>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>     at java.security.AccessControlContext.checkPermission(AccessCon
>>> trolContext.java:484)
>>>     at java.security.AccessController.checkPermission(AccessControl
>>> ler.java:698)
>>>     at java.lang.SecurityManager.checkPermission(SecurityManager.ja
>>> va:549)
>>>     at com.google.apphosting.runtime.security.CustomSecurityManager
>>> .checkPermission(CustomSecurityManager.java:55)
>>>     at com.google.apphosting.runtime.security.CustomSecurityManager
>>> .checkAccess(CustomSecurityManager.java:136)
>>>     at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
>>>     at java.lang.Thread.init(Thread.java:391)
>>>     at java.lang.Thread.init(Thread.java:349)
>>>     at java.lang.Thread.<init>(Thread.java:461)
>>>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>> nScheduler$1.newThread(ExecutorServiceSessionValidationSched
>>> uler.java:87)
>>>     at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(Thread
>>> PoolExecutor.java:600)
>>>     at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPool
>>> Executor.java:943)
>>>     at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(Threa
>>> dPoolExecutor.java:1635)
>>>     at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>> ute(ScheduledThreadPoolExecutor.java:307)
>>>     at java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>> ixedRate(ScheduledThreadPoolExecutor.java:566)
>>>     at java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>> vice.scheduleAtFixedRate(Executors.java:695)
>>>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>> nScheduler.enableSessionValidation(ExecutorServiceSessionVal
>>> idationScheduler.java:92)
>>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232)
>>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessi
>>> onManager.java:86)
>>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.doGetSession(AbstractValidatingSessionManager.java:114)
>>>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>> okupSession(AbstractNativeSessionManager.java:108)
>>>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>> tSession(AbstractNativeSessionManager.java:100)
>>>     at org.apache.shiro.mgt.SessionsSecurityManager.getSession(Sess
>>> ionsSecurityManager.java:125)
>>>     at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSe
>>> ssion(DefaultSecurityManager.java:456)
>>>     at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>> efaultSecurityManager.java:442)
>>>     at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(De
>>> faultSecurityManager.java:338)
>>>     at org.apache.shiro.subject.Subject$Builder.buildSubject(Subjec
>>> t.java:846)
>>>     at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubj
>>> ect(WebSubject.java:148)
>>>     at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubje
>>> ct(AbstractShiroFilter.java:292)
>>>     at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInt
>>> ernal(AbstractShiroFilter.java:359)
>>>     at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
>>> ncePerRequestFilter.java:125)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyF
>>> ilter.java:48)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>> Filter(ParseBlobUploadFilter.java:125)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilt
>>> er(SaveSessionFilter.java:37)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>> .doFilter(TransactionCleanupFilter.java:48)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandl
>>> er.java:388)
>>>     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHa
>>> ndler.java:216)
>>>     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandl
>>> er.java:182)
>>>     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandl
>>> er.java:765)
>>>     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.
>>> java:418)
>>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>> dle(AppVersionHandlerMap.java:257)
>>>     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapp
>>> er.java:152)
>>>     at org.mortbay.jetty.Server.handle(Server.java:326)
>>>     at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnectio
>>> n.java:542)
>>>     at org.mortbay.jetty.HttpConnection$RequestHandler.headerComple
>>> te(HttpConnection.java:923)
>>>     at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>> ailable(RpcRequestParser.java:76)
>>>     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>>>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>>> r.serviceRequest(JettyServletEngineAdapter.java:145)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchServletRequest(JavaRuntime.java:559)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchRequest(JavaRuntime.java:519)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.ru
>>> n(JavaRuntime.java:489)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable.runInCo
>>> ntext(TraceContext.java:453)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(T
>>> raceContext.java:460)
>>>     at com.google.tracing.CurrentContext.runInContext(CurrentContex
>>> t.java:293)
>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContextNoUnref(TraceContext.java:319)
>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContext(TraceContext.java:311)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable.run(Tra
>>> ceContext.java:457)
>>>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
>>> ThreadGroupPool.java:238)
>>>     at java.lang.Thread.run(Thread.java:745)
>>>
>>> When using ServletContainerSessionManager:
>>>
>>> Failed startup of context com.google.apphosting.utils.je
>>> tty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home
>>> /apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
>>> org.apache.shiro.config.ConfigurationException: Unable to determine if
>>> property [sessionManager.sessionIdCookie.maxAge] represents a
>>> java.util.Set
>>>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(Re
>>> flectionBuilder.java:264)
>>>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(Refl
>>> ectionBuilder.java:544)
>>>     at org.apache.shiro.config.ReflectionBuilder.applySinglePropert
>>> y(ReflectionBuilder.java:206)
>>>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(Refl
>>> ectionBuilder.java:167)
>>>     at org.apache.shiro.config.ReflectionBuilder.buildObjects(Refle
>>> ctionBuilder.java:124)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.buildInsta
>>> nces(IniSecurityManagerFactory.java:161)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>> rityManager(IniSecurityManagerFactory.java:124)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>> rityManager(IniSecurityManagerFactory.java:102)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>> ance(IniSecurityManagerFactory.java:88)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>> ance(IniSecurityManagerFactory.java:46)
>>>     at org.apache.shiro.config.IniFactorySupport.createInstance(Ini
>>> FactorySupport.java:123)
>>>     at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFa
>>> ctory.java:47)
>>>     at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurity
>>> Manager(IniWebEnvironment.java:203)
>>>     at org.apache.shiro.web.env.IniWebEnvironment.configure(IniWebE
>>> nvironment.java:99)
>>>     at org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnviro
>>> nment.java:92)
>>>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
>>>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
>>>     at org.apache.shiro.web.env.EnvironmentLoader.createEnvironment
>>> (EnvironmentLoader.java:221)
>>>     at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(E
>>> nvironmentLoader.java:133)
>>>     at org.apache.shiro.web.env.EnvironmentLoaderListener.contextIn
>>> itialized(EnvironmentLoaderListener.java:58)
>>>     at org.mortbay.jetty.handler.ContextHandler.startContext(Contex
>>> tHandler.java:548)
>>>     at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>>>     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppCo
>>> ntext.java:1250)
>>>     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHand
>>> ler.java:517)
>>>     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext
>>> .java:467)
>>>     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCy
>>> cle.java:50)
>>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.cre
>>> ateHandler(AppVersionHandlerMap.java:203)
>>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.get
>>> Handler(AppVersionHandlerMap.java:176)
>>>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>>> r.serviceRequest(JettyServletEngineAdapter.java:133)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchServletRequest(JavaRuntime.java:559)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchRequest(JavaRuntime.java:519)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.ru
>>> n(JavaRuntime.java:489)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable.runInCo
>>> ntext(TraceContext.java:453)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(T
>>> raceContext.java:460)
>>>     at com.google.tracing.CurrentContext.runInContext(CurrentContex
>>> t.java:293)
>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContextNoUnref(TraceContext.java:319)
>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContext(TraceContext.java:311)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable.run(Tra
>>> ceContext.java:457)
>>>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
>>> ThreadGroupPool.java:238)
>>>     at java.lang.Thread.run(Thread.java:745) Caused by:
>>> java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
>>> class 'class org.apache.shiro.web.session.m
>>> gt.ServletContainerSessionManager'
>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProp
>>> erty(PropertyUtilsBean.java:1257)
>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProp
>>> erty(PropertyUtilsBean.java:808)
>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(P
>>> ropertyUtilsBean.java:884)
>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDe
>>> scriptor(PropertyUtilsBean.java:931)
>>>     at org.apache.commons.beanutils.PropertyUtils.getPropertyDescri
>>> ptor(PropertyUtils.java:498)
>>>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(Re
>>> flectionBuilder.java:251)
>>>     ... 39 more
>>>
>>>
>>> Regards,
>>> Harshdeep S Jawanda
>>>
>>> On 14 March 2017 at 21:23, Harshdeep S Jawanda <hs...@gmail.com>
>>> wrote:
>>>
>>>> This is from when I set the session manager to DefaultWebSessionManager
>>>> (happens during server startup):
>>>>
>>>> java.security.AccessControlException: access denied
>>>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>>>> java.security.AccessControlContext.checkPermission(AccessCon
>>>> trolContext.java:484
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessControlContext.java&line=484&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at java.security.AccessController.checkPermission(AccessControl
>>>> ler.java:698
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessController.java&line=698&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>>>> at com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkPermission(CustomSecurityManager.java:55) at
>>>> com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkAccess(CustomSecurityManager.java:136) at
>>>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>>>> java.lang.Thread.init(Thread.java:391) at
>>>> java.lang.Thread.init(Thread.java:349) at
>>>> java.lang.Thread.<init>(Thread.java:461) at
>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler$1.newThread(ExecutorServiceSessionValidationSched
>>>> uler.java:87
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=87&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>>>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>>>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>>>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>>> ute(ScheduledThreadPoolExecutor.java:307) at
>>>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>>>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>>> vice.scheduleAtFixedRate(Executors.java:695) at
>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler.enableSessionValidation(ExecutorServiceSessionVal
>>>> idationScheduler.java:92
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=92&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=232&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessi
>>>> onManager.java:86
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=86&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.doGetSession(AbstractValidatingSessionManager.java:114
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=114&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>>> okupSession(AbstractNativeSessionManager.java:108
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=108&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>>> tSession(AbstractNativeSessionManager.java:100
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=100&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.mgt.SessionsSecurityManager.getSession(Sess
>>>> ionsSecurityManager.java:125
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FSessionsSecurityManager.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(
>>>> DefaultSecurityManager.java:456
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=456&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>>> efaultSecurityManager.java:442
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=442&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(De
>>>> faultSecurityManager.java:338
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=338&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.subject.Subject$Builder.buildSubject(Subjec
>>>> t.java:846
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsubject%2FSubject.java&line=846&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(
>>>> WebSubject.java:148
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fsubject%2FWebSubject.java&line=148&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(
>>>> AbstractShiroFilter.java:292
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=292&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(
>>>> AbstractShiroFilter.java:359
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=359&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
>>>> ncePerRequestFilter.java:125
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FOncePerRequestFilter.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>>> Filter(ParseBlobUploadFilter.java:125) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>>> .doFilter(TransactionCleanupFilter.java:48) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>>>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>>>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>>>> lerWrapper.handle(HandlerWrapper.java:152) at
>>>> org.mortbay.jetty.Server.handle(Server.java:326) at
>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>>>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>>>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>>>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>>>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>>>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchServletRequest(JavaRuntime.java:559) at
>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContext(TraceContext.java:311) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>>
>>>> java.security.AccessControlException: access denied
>>>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>>>> java.security.AccessControlContext.checkPermission(AccessControlContext.java:484)
>>>> at java.security.AccessController.checkPermission(AccessController.java:698)
>>>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>>>> at com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkPermission(CustomSecurityManager.java:55) at
>>>> com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkAccess(CustomSecurityManager.java:136) at
>>>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>>>> java.lang.Thread.init(Thread.java:391) at
>>>> java.lang.Thread.init(Thread.java:349) at
>>>> java.lang.Thread.<init>(Thread.java:461) at
>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>>>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>>>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>>>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>>> ute(ScheduledThreadPoolExecutor.java:307) at
>>>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>>>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>>> vice.scheduleAtFixedRate(Executors.java:695) at
>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler.enableSessionValidation(ExecutorServiceSessionValidationScheduler.java:92)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessionManager.java:86)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.doGetSession(AbstractValidatingSessionManager.java:114) at
>>>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>>> okupSession(AbstractNativeSessionManager.java:108) at
>>>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>>> tSession(AbstractNativeSessionManager.java:100) at
>>>> org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:125)
>>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSe
>>>> ssion(DefaultSecurityManager.java:456) at
>>>> org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>>> efaultSecurityManager.java:442) at org.apache.shiro.mgt.DefaultSe
>>>> curityManager.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.createSubje
>>>> ct(AbstractShiroFilter.java:292) at org.apache.shiro.web.servlet.A
>>>> bstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359) at
>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>>> Filter(ParseBlobUploadFilter.java:125) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>>> .doFilter(TransactionCleanupFilter.java:48) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>>>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>>>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>>>> lerWrapper.handle(HandlerWrapper.java:152) at
>>>> org.mortbay.jetty.Server.handle(Server.java:326) at
>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>>>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>>>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>>>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>>>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>>>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchServletRequest(JavaRuntime.java:559) at
>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContext(TraceContext.java:311) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>>
>>>>
>>>> The following is the exception when using ServletContainerSessionManager
>>>> :
>>>>
>>>> Failed startup of context com.google.apphosting.utils.je
>>>> tty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home
>>>> /apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
>>>> org.apache.shiro.config.ConfigurationException: Unable to determine if
>>>> property [sessionManager.sessionIdCookie.maxAge] represents a
>>>> java.util.Set at org.apache.shiro.config.Reflec
>>>> tionBuilder.isTypedProperty(ReflectionBuilder.java:264) at
>>>> org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:544)
>>>> at org.apache.shiro.config.ReflectionBuilder.applySingleProperty(ReflectionBuilder.java:206)
>>>> at org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:167)
>>>> at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:124)
>>>> at org.apache.shiro.config.IniSecurityManagerFactory.buildInsta
>>>> nces(IniSecurityManagerFactory.java:161) at
>>>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>>> rityManager(IniSecurityManagerFactory.java:124) at
>>>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>>> rityManager(IniSecurityManagerFactory.java:102) at
>>>> org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>>> ance(IniSecurityManagerFactory.java:88) at
>>>> org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>>> ance(IniSecurityManagerFactory.java:46) at
>>>> org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:123)
>>>> at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:47)
>>>> at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurity
>>>> Manager(IniWebEnvironment.java:203) at org.apache.shiro.web.env.IniWe
>>>> bEnvironment.configure(IniWebEnvironment.java:99) at
>>>> org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:92)
>>>> at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
>>>> at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
>>>> at org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(EnvironmentLoader.java:221)
>>>> at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:133)
>>>> at org.apache.shiro.web.env.EnvironmentLoaderListener.contextIn
>>>> itialized(EnvironmentLoaderListener.java:58) at
>>>> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
>>>> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at
>>>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
>>>> at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
>>>> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
>>>> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.cre
>>>> ateHandler(AppVersionHandlerMap.java:203) at
>>>> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.get
>>>> Handler(AppVersionHandlerMap.java:176) at
>>>> com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>>>> r.serviceRequest(JettyServletEngineAdapter.java:133) at
>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchServletRequest(JavaRuntime.java:559) at
>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContext(TraceContext.java:311) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>>> at java.lang.Thread.run(Thread.java:745) Caused by:
>>>> java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
>>>> class 'class org.apache.shiro.web.session.m
>>>> gt.ServletContainerSessionManager' at org.apache.commons.beanutils.P
>>>> ropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1257) at
>>>> org.apache.commons.beanutils.PropertyUtilsBean.getNestedProp
>>>> erty(PropertyUtilsBean.java:808) at org.apache.commons.beanutils.P
>>>> ropertyUtilsBean.getProperty(PropertyUtilsBean.java:884) at
>>>> org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDe
>>>> scriptor(PropertyUtilsBean.java:931) at org.apache.commons.beanutils.P
>>>> ropertyUtils.getPropertyDescriptor(PropertyUtils.java:498) at
>>>> org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:251)
>>>> ... 39 more
>>>>
>>>>
>>>>
>>>> Regards,
>>>> Harshdeep S Jawanda
>>>>
>>>> On 14 March 2017 at 20:51, Brian Demers <br...@gmail.com> wrote:
>>>>
>>>>> Can you post the stacktraces ?
>>>>>
>>>>>
>>>>> On Tue, Mar 14, 2017 at 3:36 AM, Harshdeep S Jawanda <
>>>>> hsjawanda@gmail.com> wrote:
>>>>>
>>>>>> Initially I was not explicitly setting the session manager in my
>>>>>> shiro.ini, so it defaults to ServletContainerSessionManager.
>>>>>> ServletContainerSessionManager doesn't have a sessionIdCookie property, so
>>>>>> I get the NoSuchMethodException exception during startup (if I use
>>>>>> securityManager.sessionManager.sessionIdCookie.maxAge in shiro.ini).
>>>>>>
>>>>>> If I try to explicitly set the session manager to
>>>>>> DefaultWebSessionManager in shiro.ini, I get the previously mentioned
>>>>>> AccessControlException, which, as far as I can make out, is because
>>>>>> DefaultWebSessionManager must be trying to write to disk, and that is
>>>>>> forbidden on Google App Engine.
>>>>>>
>>>>>> I also tried to do user.getSession().setTimeout(timeoutValue * 1000)
>>>>>> immediately after user logs in (with ServletContainerSessionManager
>>>>>> active), but that seems to have no effect. httpServletRequest.getSession(
>>>>>> ).setMaxInactiveInterval(timeoutValue) didn't work either.
>>>>>>
>>>>>> Any suggestions? There must be a way to set session cookie timeout on
>>>>>> GAE using Shiro...
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Harshdeep S Jawanda
>>>>>>
>>>>>> On 13 March 2017 at 20:22, Brian Demers <br...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> If you are using a shiro.ini the property would be:
>>>>>>> securityManager.sessionManager.sessionIdCookie.maxAge = <int>
>>>>>>>
>>>>>>> Otherwise you can traverse your beans, something like:
>>>>>>> sessionManger.getSessionIdCookie().setMaxAge(<int>)
>>>>>>>
>>>>>>> On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <
>>>>>>> hsjawanda@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I wondered if anybody could help me with setting the session cookie
>>>>>>>> lifetime for Shiro on GAE.
>>>>>>>>
>>>>>>>> I tried with DefaultWebSessionManager but I get an
>>>>>>>> AccessControlException:
>>>>>>>>
>>>>>>>> java.security.AccessControlException: access denied
>>>>>>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>>>>>>
>>>>>>>> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000)
>>>>>>>> but that doesn't work either. The JSESSIONID cookie continues to show an
>>>>>>>> Expires value of "At end of session".
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Harshdeep S Jawanda
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
I had sent another, re-formatted email immediately afterwards when I
realized that the formatting hadn't gone through correctly (without proper
linebreaks, stacktraces are impossible to read!), but anyway, here are a
couple of gists:

When using DefaultWebSessionManager:
https://gist.github.com/hsjawanda/9d360ef4e890e0ee7f61f184d4ca42b1

When using ServletContainerSessionManager:
https://gist.github.com/hsjawanda/711e5ef8cc4ed95138b725f3c3625c74

Regards,
Harshdeep S Jawanda

On 16 March 2017 at 01:26, Brian Demers <br...@gmail.com> wrote:

> The formatting of the stacktraces is missing in the email, making it
> difficult to read.
> Can you reformat it, or use a Github gist ?
>
> On Tue, Mar 14, 2017 at 1:34 PM, Harshdeep S Jawanda <hs...@gmail.com>
> wrote:
>
>> Do the stack traces give you any idea?
>>
>> Sent from my Moto X2
>>
>> On 14-Mar-2017 21:31, "Harshdeep S Jawanda" <hs...@gmail.com> wrote:
>>
>>> Second try...
>>>
>>> When using DefaultWebSessionManager:
>>>
>>> Uncaught exception from servlet
>>> java.security.AccessControlException: access denied
>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>     at java.security.AccessControlContext.checkPermission(AccessCon
>>> trolContext.java:484)
>>>     at java.security.AccessController.checkPermission(AccessControl
>>> ler.java:698)
>>>     at java.lang.SecurityManager.checkPermission(SecurityManager.ja
>>> va:549)
>>>     at com.google.apphosting.runtime.security.CustomSecurityManager
>>> .checkPermission(CustomSecurityManager.java:55)
>>>     at com.google.apphosting.runtime.security.CustomSecurityManager
>>> .checkAccess(CustomSecurityManager.java:136)
>>>     at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
>>>     at java.lang.Thread.init(Thread.java:391)
>>>     at java.lang.Thread.init(Thread.java:349)
>>>     at java.lang.Thread.<init>(Thread.java:461)
>>>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>> nScheduler$1.newThread(ExecutorServiceSessionValidationSched
>>> uler.java:87)
>>>     at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(Thread
>>> PoolExecutor.java:600)
>>>     at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPool
>>> Executor.java:943)
>>>     at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(Threa
>>> dPoolExecutor.java:1635)
>>>     at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>> ute(ScheduledThreadPoolExecutor.java:307)
>>>     at java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>> ixedRate(ScheduledThreadPoolExecutor.java:566)
>>>     at java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>> vice.scheduleAtFixedRate(Executors.java:695)
>>>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>> nScheduler.enableSessionValidation(ExecutorServiceSessionVal
>>> idationScheduler.java:92)
>>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232)
>>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessi
>>> onManager.java:86)
>>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.doGetSession(AbstractValidatingSessionManager.java:114)
>>>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>> okupSession(AbstractNativeSessionManager.java:108)
>>>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>> tSession(AbstractNativeSessionManager.java:100)
>>>     at org.apache.shiro.mgt.SessionsSecurityManager.getSession(Sess
>>> ionsSecurityManager.java:125)
>>>     at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSe
>>> ssion(DefaultSecurityManager.java:456)
>>>     at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>> efaultSecurityManager.java:442)
>>>     at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(De
>>> faultSecurityManager.java:338)
>>>     at org.apache.shiro.subject.Subject$Builder.buildSubject(Subjec
>>> t.java:846)
>>>     at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubj
>>> ect(WebSubject.java:148)
>>>     at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubje
>>> ct(AbstractShiroFilter.java:292)
>>>     at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInt
>>> ernal(AbstractShiroFilter.java:359)
>>>     at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
>>> ncePerRequestFilter.java:125)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyF
>>> ilter.java:48)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>> Filter(ParseBlobUploadFilter.java:125)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilt
>>> er(SaveSessionFilter.java:37)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>> .doFilter(TransactionCleanupFilter.java:48)
>>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>>> r(ServletHandler.java:1157)
>>>     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandl
>>> er.java:388)
>>>     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHa
>>> ndler.java:216)
>>>     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandl
>>> er.java:182)
>>>     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandl
>>> er.java:765)
>>>     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.
>>> java:418)
>>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>> dle(AppVersionHandlerMap.java:257)
>>>     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapp
>>> er.java:152)
>>>     at org.mortbay.jetty.Server.handle(Server.java:326)
>>>     at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnectio
>>> n.java:542)
>>>     at org.mortbay.jetty.HttpConnection$RequestHandler.headerComple
>>> te(HttpConnection.java:923)
>>>     at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>> ailable(RpcRequestParser.java:76)
>>>     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>>>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>>> r.serviceRequest(JettyServletEngineAdapter.java:145)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchServletRequest(JavaRuntime.java:559)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchRequest(JavaRuntime.java:519)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.ru
>>> n(JavaRuntime.java:489)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable.runInCo
>>> ntext(TraceContext.java:453)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(T
>>> raceContext.java:460)
>>>     at com.google.tracing.CurrentContext.runInContext(CurrentContex
>>> t.java:293)
>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContextNoUnref(TraceContext.java:319)
>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContext(TraceContext.java:311)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable.run(Tra
>>> ceContext.java:457)
>>>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
>>> ThreadGroupPool.java:238)
>>>     at java.lang.Thread.run(Thread.java:745)
>>>
>>> When using ServletContainerSessionManager:
>>>
>>> Failed startup of context com.google.apphosting.utils.je
>>> tty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home
>>> /apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
>>> org.apache.shiro.config.ConfigurationException: Unable to determine if
>>> property [sessionManager.sessionIdCookie.maxAge] represents a
>>> java.util.Set
>>>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(Re
>>> flectionBuilder.java:264)
>>>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(Refl
>>> ectionBuilder.java:544)
>>>     at org.apache.shiro.config.ReflectionBuilder.applySinglePropert
>>> y(ReflectionBuilder.java:206)
>>>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(Refl
>>> ectionBuilder.java:167)
>>>     at org.apache.shiro.config.ReflectionBuilder.buildObjects(Refle
>>> ctionBuilder.java:124)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.buildInsta
>>> nces(IniSecurityManagerFactory.java:161)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>> rityManager(IniSecurityManagerFactory.java:124)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>> rityManager(IniSecurityManagerFactory.java:102)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>> ance(IniSecurityManagerFactory.java:88)
>>>     at org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>> ance(IniSecurityManagerFactory.java:46)
>>>     at org.apache.shiro.config.IniFactorySupport.createInstance(Ini
>>> FactorySupport.java:123)
>>>     at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFa
>>> ctory.java:47)
>>>     at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurity
>>> Manager(IniWebEnvironment.java:203)
>>>     at org.apache.shiro.web.env.IniWebEnvironment.configure(IniWebE
>>> nvironment.java:99)
>>>     at org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnviro
>>> nment.java:92)
>>>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
>>>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
>>>     at org.apache.shiro.web.env.EnvironmentLoader.createEnvironment
>>> (EnvironmentLoader.java:221)
>>>     at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(E
>>> nvironmentLoader.java:133)
>>>     at org.apache.shiro.web.env.EnvironmentLoaderListener.contextIn
>>> itialized(EnvironmentLoaderListener.java:58)
>>>     at org.mortbay.jetty.handler.ContextHandler.startContext(Contex
>>> tHandler.java:548)
>>>     at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>>>     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppCo
>>> ntext.java:1250)
>>>     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHand
>>> ler.java:517)
>>>     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext
>>> .java:467)
>>>     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCy
>>> cle.java:50)
>>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.cre
>>> ateHandler(AppVersionHandlerMap.java:203)
>>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.get
>>> Handler(AppVersionHandlerMap.java:176)
>>>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>>> r.serviceRequest(JettyServletEngineAdapter.java:133)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchServletRequest(JavaRuntime.java:559)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchRequest(JavaRuntime.java:519)
>>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.ru
>>> n(JavaRuntime.java:489)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable.runInCo
>>> ntext(TraceContext.java:453)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(T
>>> raceContext.java:460)
>>>     at com.google.tracing.CurrentContext.runInContext(CurrentContex
>>> t.java:293)
>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContextNoUnref(TraceContext.java:319)
>>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContext(TraceContext.java:311)
>>>     at com.google.tracing.TraceContext$TraceContextRunnable.run(Tra
>>> ceContext.java:457)
>>>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
>>> ThreadGroupPool.java:238)
>>>     at java.lang.Thread.run(Thread.java:745) Caused by:
>>> java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
>>> class 'class org.apache.shiro.web.session.m
>>> gt.ServletContainerSessionManager'
>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProp
>>> erty(PropertyUtilsBean.java:1257)
>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProp
>>> erty(PropertyUtilsBean.java:808)
>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(P
>>> ropertyUtilsBean.java:884)
>>>     at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDe
>>> scriptor(PropertyUtilsBean.java:931)
>>>     at org.apache.commons.beanutils.PropertyUtils.getPropertyDescri
>>> ptor(PropertyUtils.java:498)
>>>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(Re
>>> flectionBuilder.java:251)
>>>     ... 39 more
>>>
>>>
>>> Regards,
>>> Harshdeep S Jawanda
>>>
>>> On 14 March 2017 at 21:23, Harshdeep S Jawanda <hs...@gmail.com>
>>> wrote:
>>>
>>>> This is from when I set the session manager to DefaultWebSessionManager
>>>> (happens during server startup):
>>>>
>>>> java.security.AccessControlException: access denied
>>>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>>>> java.security.AccessControlContext.checkPermission(AccessCon
>>>> trolContext.java:484
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessControlContext.java&line=484&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at java.security.AccessController.checkPermission(AccessControl
>>>> ler.java:698
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessController.java&line=698&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>>>> at com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkPermission(CustomSecurityManager.java:55) at
>>>> com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkAccess(CustomSecurityManager.java:136) at
>>>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>>>> java.lang.Thread.init(Thread.java:391) at
>>>> java.lang.Thread.init(Thread.java:349) at
>>>> java.lang.Thread.<init>(Thread.java:461) at
>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler$1.newThread(ExecutorServiceSessionValidationSched
>>>> uler.java:87
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=87&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>>>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>>>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>>>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>>> ute(ScheduledThreadPoolExecutor.java:307) at
>>>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>>>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>>> vice.scheduleAtFixedRate(Executors.java:695) at
>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler.enableSessionValidation(ExecutorServiceSessionVal
>>>> idationScheduler.java:92
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=92&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=232&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessi
>>>> onManager.java:86
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=86&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.doGetSession(AbstractValidatingSessionManager.java:114
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=114&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>>> okupSession(AbstractNativeSessionManager.java:108
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=108&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>>> tSession(AbstractNativeSessionManager.java:100
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=100&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.mgt.SessionsSecurityManager.getSession(Sess
>>>> ionsSecurityManager.java:125
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FSessionsSecurityManager.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(
>>>> DefaultSecurityManager.java:456
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=456&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>>> efaultSecurityManager.java:442
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=442&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(De
>>>> faultSecurityManager.java:338
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=338&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.subject.Subject$Builder.buildSubject(Subjec
>>>> t.java:846
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsubject%2FSubject.java&line=846&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(
>>>> WebSubject.java:148
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fsubject%2FWebSubject.java&line=148&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(
>>>> AbstractShiroFilter.java:292
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=292&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(
>>>> AbstractShiroFilter.java:359
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=359&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
>>>> ncePerRequestFilter.java:125
>>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FOncePerRequestFilter.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>>> Filter(ParseBlobUploadFilter.java:125) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>>> .doFilter(TransactionCleanupFilter.java:48) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>>>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>>>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>>>> lerWrapper.handle(HandlerWrapper.java:152) at
>>>> org.mortbay.jetty.Server.handle(Server.java:326) at
>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>>>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>>>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>>>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>>>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>>>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchServletRequest(JavaRuntime.java:559) at
>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContext(TraceContext.java:311) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>>
>>>> java.security.AccessControlException: access denied
>>>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>>>> java.security.AccessControlContext.checkPermission(AccessControlContext.java:484)
>>>> at java.security.AccessController.checkPermission(AccessController.java:698)
>>>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>>>> at com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkPermission(CustomSecurityManager.java:55) at
>>>> com.google.apphosting.runtime.security.CustomSecurityManager
>>>> .checkAccess(CustomSecurityManager.java:136) at
>>>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>>>> java.lang.Thread.init(Thread.java:391) at
>>>> java.lang.Thread.init(Thread.java:349) at
>>>> java.lang.Thread.<init>(Thread.java:461) at
>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>>>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>>>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>>>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>>> ute(ScheduledThreadPoolExecutor.java:307) at
>>>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>>>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>>> vice.scheduleAtFixedRate(Executors.java:695) at
>>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>>> nScheduler.enableSessionValidation(ExecutorServiceSessionValidationScheduler.java:92)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessionManager.java:86)
>>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>>> r.doGetSession(AbstractValidatingSessionManager.java:114) at
>>>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>>> okupSession(AbstractNativeSessionManager.java:108) at
>>>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>>> tSession(AbstractNativeSessionManager.java:100) at
>>>> org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:125)
>>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSe
>>>> ssion(DefaultSecurityManager.java:456) at
>>>> org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>>> efaultSecurityManager.java:442) at org.apache.shiro.mgt.DefaultSe
>>>> curityManager.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.createSubje
>>>> ct(AbstractShiroFilter.java:292) at org.apache.shiro.web.servlet.A
>>>> bstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359) at
>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>>> Filter(ParseBlobUploadFilter.java:125) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>>> .doFilter(TransactionCleanupFilter.java:48) at
>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>>>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>>>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>>>> lerWrapper.handle(HandlerWrapper.java:152) at
>>>> org.mortbay.jetty.Server.handle(Server.java:326) at
>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>>>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>>>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>>>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>>>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>>>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchServletRequest(JavaRuntime.java:559) at
>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContext(TraceContext.java:311) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>>
>>>>
>>>> The following is the exception when using ServletContainerSessionManager
>>>> :
>>>>
>>>> Failed startup of context com.google.apphosting.utils.je
>>>> tty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home
>>>> /apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
>>>> org.apache.shiro.config.ConfigurationException: Unable to determine if
>>>> property [sessionManager.sessionIdCookie.maxAge] represents a
>>>> java.util.Set at org.apache.shiro.config.Reflec
>>>> tionBuilder.isTypedProperty(ReflectionBuilder.java:264) at
>>>> org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:544)
>>>> at org.apache.shiro.config.ReflectionBuilder.applySingleProperty(ReflectionBuilder.java:206)
>>>> at org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:167)
>>>> at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:124)
>>>> at org.apache.shiro.config.IniSecurityManagerFactory.buildInsta
>>>> nces(IniSecurityManagerFactory.java:161) at
>>>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>>> rityManager(IniSecurityManagerFactory.java:124) at
>>>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>>> rityManager(IniSecurityManagerFactory.java:102) at
>>>> org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>>> ance(IniSecurityManagerFactory.java:88) at
>>>> org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>>> ance(IniSecurityManagerFactory.java:46) at
>>>> org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:123)
>>>> at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:47)
>>>> at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurity
>>>> Manager(IniWebEnvironment.java:203) at org.apache.shiro.web.env.IniWe
>>>> bEnvironment.configure(IniWebEnvironment.java:99) at
>>>> org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:92)
>>>> at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
>>>> at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
>>>> at org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(EnvironmentLoader.java:221)
>>>> at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:133)
>>>> at org.apache.shiro.web.env.EnvironmentLoaderListener.contextIn
>>>> itialized(EnvironmentLoaderListener.java:58) at
>>>> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
>>>> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at
>>>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
>>>> at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
>>>> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
>>>> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.cre
>>>> ateHandler(AppVersionHandlerMap.java:203) at
>>>> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.get
>>>> Handler(AppVersionHandlerMap.java:176) at
>>>> com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>>>> r.serviceRequest(JettyServletEngineAdapter.java:133) at
>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchServletRequest(JavaRuntime.java:559) at
>>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>>> .runInInheritedContext(TraceContext.java:311) at
>>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>>> at java.lang.Thread.run(Thread.java:745) Caused by:
>>>> java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
>>>> class 'class org.apache.shiro.web.session.m
>>>> gt.ServletContainerSessionManager' at org.apache.commons.beanutils.P
>>>> ropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1257) at
>>>> org.apache.commons.beanutils.PropertyUtilsBean.getNestedProp
>>>> erty(PropertyUtilsBean.java:808) at org.apache.commons.beanutils.P
>>>> ropertyUtilsBean.getProperty(PropertyUtilsBean.java:884) at
>>>> org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDe
>>>> scriptor(PropertyUtilsBean.java:931) at org.apache.commons.beanutils.P
>>>> ropertyUtils.getPropertyDescriptor(PropertyUtils.java:498) at
>>>> org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:251)
>>>> ... 39 more
>>>>
>>>>
>>>>
>>>> Regards,
>>>> Harshdeep S Jawanda
>>>>
>>>> On 14 March 2017 at 20:51, Brian Demers <br...@gmail.com> wrote:
>>>>
>>>>> Can you post the stacktraces ?
>>>>>
>>>>>
>>>>> On Tue, Mar 14, 2017 at 3:36 AM, Harshdeep S Jawanda <
>>>>> hsjawanda@gmail.com> wrote:
>>>>>
>>>>>> Initially I was not explicitly setting the session manager in my
>>>>>> shiro.ini, so it defaults to ServletContainerSessionManager.
>>>>>> ServletContainerSessionManager doesn't have a sessionIdCookie property, so
>>>>>> I get the NoSuchMethodException exception during startup (if I use
>>>>>> securityManager.sessionManager.sessionIdCookie.maxAge in shiro.ini).
>>>>>>
>>>>>> If I try to explicitly set the session manager to
>>>>>> DefaultWebSessionManager in shiro.ini, I get the previously mentioned
>>>>>> AccessControlException, which, as far as I can make out, is because
>>>>>> DefaultWebSessionManager must be trying to write to disk, and that is
>>>>>> forbidden on Google App Engine.
>>>>>>
>>>>>> I also tried to do user.getSession().setTimeout(timeoutValue * 1000)
>>>>>> immediately after user logs in (with ServletContainerSessionManager
>>>>>> active), but that seems to have no effect. httpServletRequest.getSession(
>>>>>> ).setMaxInactiveInterval(timeoutValue) didn't work either.
>>>>>>
>>>>>> Any suggestions? There must be a way to set session cookie timeout on
>>>>>> GAE using Shiro...
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Harshdeep S Jawanda
>>>>>>
>>>>>> On 13 March 2017 at 20:22, Brian Demers <br...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> If you are using a shiro.ini the property would be:
>>>>>>> securityManager.sessionManager.sessionIdCookie.maxAge = <int>
>>>>>>>
>>>>>>> Otherwise you can traverse your beans, something like:
>>>>>>> sessionManger.getSessionIdCookie().setMaxAge(<int>)
>>>>>>>
>>>>>>> On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <
>>>>>>> hsjawanda@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I wondered if anybody could help me with setting the session cookie
>>>>>>>> lifetime for Shiro on GAE.
>>>>>>>>
>>>>>>>> I tried with DefaultWebSessionManager but I get an
>>>>>>>> AccessControlException:
>>>>>>>>
>>>>>>>> java.security.AccessControlException: access denied
>>>>>>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>>>>>>
>>>>>>>> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000)
>>>>>>>> but that doesn't work either. The JSESSIONID cookie continues to show an
>>>>>>>> Expires value of "At end of session".
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Harshdeep S Jawanda
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>

Re: Setting login expiry for Shiro on GAE

Posted by Brian Demers <br...@gmail.com>.
The formatting of the stacktraces is missing in the email, making it
difficult to read.
Can you reformat it, or use a Github gist ?

On Tue, Mar 14, 2017 at 1:34 PM, Harshdeep S Jawanda <hs...@gmail.com>
wrote:

> Do the stack traces give you any idea?
>
> Sent from my Moto X2
>
> On 14-Mar-2017 21:31, "Harshdeep S Jawanda" <hs...@gmail.com> wrote:
>
>> Second try...
>>
>> When using DefaultWebSessionManager:
>>
>> Uncaught exception from servlet
>> java.security.AccessControlException: access denied
>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>     at java.security.AccessControlContext.checkPermission(AccessCon
>> trolContext.java:484)
>>     at java.security.AccessController.checkPermission(AccessControl
>> ler.java:698)
>>     at java.lang.SecurityManager.checkPermission(SecurityManager.
>> java:549)
>>     at com.google.apphosting.runtime.security.CustomSecurityManager
>> .checkPermission(CustomSecurityManager.java:55)
>>     at com.google.apphosting.runtime.security.CustomSecurityManager
>> .checkAccess(CustomSecurityManager.java:136)
>>     at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
>>     at java.lang.Thread.init(Thread.java:391)
>>     at java.lang.Thread.init(Thread.java:349)
>>     at java.lang.Thread.<init>(Thread.java:461)
>>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>> nScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
>>     at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(
>> ThreadPoolExecutor.java:600)
>>     at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPool
>> Executor.java:943)
>>     at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(Threa
>> dPoolExecutor.java:1635)
>>     at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>> ute(ScheduledThreadPoolExecutor.java:307)
>>     at java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>> ixedRate(ScheduledThreadPoolExecutor.java:566)
>>     at java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>> vice.scheduleAtFixedRate(Executors.java:695)
>>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>> nScheduler.enableSessionValidation(ExecutorServiceSessionVal
>> idationScheduler.java:92)
>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232)
>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>> r.enableSessionValidationIfNecessary(AbstractValidatingSessi
>> onManager.java:86)
>>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>> r.doGetSession(AbstractValidatingSessionManager.java:114)
>>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>> okupSession(AbstractNativeSessionManager.java:108)
>>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>> tSession(AbstractNativeSessionManager.java:100)
>>     at org.apache.shiro.mgt.SessionsSecurityManager.getSession(Sess
>> ionsSecurityManager.java:125)
>>     at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSe
>> ssion(DefaultSecurityManager.java:456)
>>     at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>> efaultSecurityManager.java:442)
>>     at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(De
>> faultSecurityManager.java:338)
>>     at org.apache.shiro.subject.Subject$Builder.buildSubject(Subjec
>> t.java:846)
>>     at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubj
>> ect(WebSubject.java:148)
>>     at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubje
>> ct(AbstractShiroFilter.java:292)
>>     at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInt
>> ernal(AbstractShiroFilter.java:359)
>>     at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
>> ncePerRequestFilter.java:125)
>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>> r(ServletHandler.java:1157)
>>     at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyF
>> ilter.java:48)
>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>> r(ServletHandler.java:1157)
>>     at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>> Filter(ParseBlobUploadFilter.java:125)
>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>> r(ServletHandler.java:1157)
>>     at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilt
>> er(SaveSessionFilter.java:37)
>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>> r(ServletHandler.java:1157)
>>     at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>> r(ServletHandler.java:1157)
>>     at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>> .doFilter(TransactionCleanupFilter.java:48)
>>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilte
>> r(ServletHandler.java:1157)
>>     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandl
>> er.java:388)
>>     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHa
>> ndler.java:216)
>>     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandl
>> er.java:182)
>>     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandl
>> er.java:765)
>>     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.
>> java:418)
>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>> dle(AppVersionHandlerMap.java:257)
>>     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapp
>> er.java:152)
>>     at org.mortbay.jetty.Server.handle(Server.java:326)
>>     at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnectio
>> n.java:542)
>>     at org.mortbay.jetty.HttpConnection$RequestHandler.headerComple
>> te(HttpConnection.java:923)
>>     at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>> ailable(RpcRequestParser.java:76)
>>     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>> r.serviceRequest(JettyServletEngineAdapter.java:145)
>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchServletRequest(JavaRuntime.java:559)
>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchRequest(JavaRuntime.java:519)
>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.ru
>> n(JavaRuntime.java:489)
>>     at com.google.tracing.TraceContext$TraceContextRunnable.runInCo
>> ntext(TraceContext.java:453)
>>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(T
>> raceContext.java:460)
>>     at com.google.tracing.CurrentContext.runInContext(CurrentContex
>> t.java:293)
>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContextNoUnref(TraceContext.java:319)
>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContext(TraceContext.java:311)
>>     at com.google.tracing.TraceContext$TraceContextRunnable.run(Tra
>> ceContext.java:457)
>>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
>> ThreadGroupPool.java:238)
>>     at java.lang.Thread.run(Thread.java:745)
>>
>> When using ServletContainerSessionManager:
>>
>> Failed startup of context com.google.apphosting.utils.je
>> tty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/
>> home/apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
>> org.apache.shiro.config.ConfigurationException: Unable to determine if
>> property [sessionManager.sessionIdCookie.maxAge] represents a
>> java.util.Set
>>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(Re
>> flectionBuilder.java:264)
>>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(Refl
>> ectionBuilder.java:544)
>>     at org.apache.shiro.config.ReflectionBuilder.applySinglePropert
>> y(ReflectionBuilder.java:206)
>>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(Refl
>> ectionBuilder.java:167)
>>     at org.apache.shiro.config.ReflectionBuilder.buildObjects(Refle
>> ctionBuilder.java:124)
>>     at org.apache.shiro.config.IniSecurityManagerFactory.buildInsta
>> nces(IniSecurityManagerFactory.java:161)
>>     at org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>> rityManager(IniSecurityManagerFactory.java:124)
>>     at org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>> rityManager(IniSecurityManagerFactory.java:102)
>>     at org.apache.shiro.config.IniSecurityManagerFactory.createInst
>> ance(IniSecurityManagerFactory.java:88)
>>     at org.apache.shiro.config.IniSecurityManagerFactory.createInst
>> ance(IniSecurityManagerFactory.java:46)
>>     at org.apache.shiro.config.IniFactorySupport.createInstance(Ini
>> FactorySupport.java:123)
>>     at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFa
>> ctory.java:47)
>>     at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurity
>> Manager(IniWebEnvironment.java:203)
>>     at org.apache.shiro.web.env.IniWebEnvironment.configure(IniWebE
>> nvironment.java:99)
>>     at org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnviro
>> nment.java:92)
>>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
>>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
>>     at org.apache.shiro.web.env.EnvironmentLoader.createEnvironment
>> (EnvironmentLoader.java:221)
>>     at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(E
>> nvironmentLoader.java:133)
>>     at org.apache.shiro.web.env.EnvironmentLoaderListener.contextIn
>> itialized(EnvironmentLoaderListener.java:58)
>>     at org.mortbay.jetty.handler.ContextHandler.startContext(Contex
>> tHandler.java:548)
>>     at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>>     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppCo
>> ntext.java:1250)
>>     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHand
>> ler.java:517)
>>     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext
>> .java:467)
>>     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCy
>> cle.java:50)
>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.cre
>> ateHandler(AppVersionHandlerMap.java:203)
>>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.get
>> Handler(AppVersionHandlerMap.java:176)
>>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapte
>> r.serviceRequest(JettyServletEngineAdapter.java:133)
>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchServletRequest(JavaRuntime.java:559)
>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchRequest(JavaRuntime.java:519)
>>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.ru
>> n(JavaRuntime.java:489)
>>     at com.google.tracing.TraceContext$TraceContextRunnable.runInCo
>> ntext(TraceContext.java:453)
>>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(T
>> raceContext.java:460)
>>     at com.google.tracing.CurrentContext.runInContext(CurrentContex
>> t.java:293)
>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContextNoUnref(TraceContext.java:319)
>>     at com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContext(TraceContext.java:311)
>>     at com.google.tracing.TraceContext$TraceContextRunnable.run(Tra
>> ceContext.java:457)
>>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
>> ThreadGroupPool.java:238)
>>     at java.lang.Thread.run(Thread.java:745) Caused by:
>> java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
>> class 'class org.apache.shiro.web.session.mgt.ServletContainerSessionMana
>> ger'
>>     at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProp
>> erty(PropertyUtilsBean.java:1257)
>>     at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProp
>> erty(PropertyUtilsBean.java:808)
>>     at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(P
>> ropertyUtilsBean.java:884)
>>     at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDe
>> scriptor(PropertyUtilsBean.java:931)
>>     at org.apache.commons.beanutils.PropertyUtils.getPropertyDescri
>> ptor(PropertyUtils.java:498)
>>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(Re
>> flectionBuilder.java:251)
>>     ... 39 more
>>
>>
>> Regards,
>> Harshdeep S Jawanda
>>
>> On 14 March 2017 at 21:23, Harshdeep S Jawanda <hs...@gmail.com>
>> wrote:
>>
>>> This is from when I set the session manager to DefaultWebSessionManager
>>> (happens during server startup):
>>>
>>> java.security.AccessControlException: access denied
>>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>>> java.security.AccessControlContext.checkPermission(AccessCon
>>> trolContext.java:484
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessControlContext.java&line=484&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at java.security.AccessController.checkPermission(AccessControl
>>> ler.java:698
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessController.java&line=698&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>>> at com.google.apphosting.runtime.security.CustomSecurityManager
>>> .checkPermission(CustomSecurityManager.java:55) at
>>> com.google.apphosting.runtime.security.CustomSecurityManager
>>> .checkAccess(CustomSecurityManager.java:136) at
>>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>>> java.lang.Thread.init(Thread.java:391) at java.lang.Thread.init(Thread.java:349)
>>> at java.lang.Thread.<init>(Thread.java:461) at
>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>> nScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=87&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>> ute(ScheduledThreadPoolExecutor.java:307) at
>>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>> vice.scheduleAtFixedRate(Executors.java:695) at
>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>> nScheduler.enableSessionValidation(ExecutorServiceSessionVal
>>> idationScheduler.java:92
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=92&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=232&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessi
>>> onManager.java:86
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=86&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.doGetSession(AbstractValidatingSessionManager.java:114
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=114&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>> okupSession(AbstractNativeSessionManager.java:108
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=108&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.getSession(
>>> AbstractNativeSessionManager.java:100
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=100&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.mgt.SessionsSecurityManager.getSession(Sess
>>> ionsSecurityManager.java:125
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FSessionsSecurityManager.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(
>>> DefaultSecurityManager.java:456
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=456&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>>> efaultSecurityManager.java:442
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=442&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(De
>>> faultSecurityManager.java:338
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=338&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.subject.Subject$Builder.buildSubject(Subjec
>>> t.java:846
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsubject%2FSubject.java&line=846&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(
>>> WebSubject.java:148
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fsubject%2FWebSubject.java&line=148&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(
>>> AbstractShiroFilter.java:292
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=292&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(
>>> AbstractShiroFilter.java:359
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=359&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
>>> ncePerRequestFilter.java:125
>>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FOncePerRequestFilter.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>> Filter(ParseBlobUploadFilter.java:125) at org.mortbay.jetty.servlet.Serv
>>> letHandler$CachedChain.doFilter(ServletHandler.java:1157) at
>>> com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>> .doFilter(TransactionCleanupFilter.java:48) at
>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>>> lerWrapper.handle(HandlerWrapper.java:152) at
>>> org.mortbay.jetty.Server.handle(Server.java:326) at
>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchServletRequest(JavaRuntime.java:559) at
>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContext(TraceContext.java:311) at
>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>> at java.lang.Thread.run(Thread.java:745)
>>>
>>> java.security.AccessControlException: access denied
>>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>>> java.security.AccessControlContext.checkPermission(AccessControlContext.java:484)
>>> at java.security.AccessController.checkPermission(AccessController.java:698)
>>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>>> at com.google.apphosting.runtime.security.CustomSecurityManager
>>> .checkPermission(CustomSecurityManager.java:55) at
>>> com.google.apphosting.runtime.security.CustomSecurityManager
>>> .checkAccess(CustomSecurityManager.java:136) at
>>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>>> java.lang.Thread.init(Thread.java:391) at java.lang.Thread.init(Thread.java:349)
>>> at java.lang.Thread.<init>(Thread.java:461) at
>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>> nScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
>>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>>> ute(ScheduledThreadPoolExecutor.java:307) at
>>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>>> vice.scheduleAtFixedRate(Executors.java:695) at
>>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>>> nScheduler.enableSessionValidation(ExecutorServiceSessionValidationScheduler.java:92)
>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232) at
>>> org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.enableSessionValidationIfNecessary(AbstractValidatingSessionManager.java:86)
>>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>>> r.doGetSession(AbstractValidatingSessionManager.java:114) at
>>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>>> okupSession(AbstractNativeSessionManager.java:108) at
>>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>>> tSession(AbstractNativeSessionManager.java:100) at
>>> org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:125)
>>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSe
>>> ssion(DefaultSecurityManager.java:456) at org.apache.shiro.mgt.DefaultSe
>>> curityManager.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.createSubje
>>> ct(AbstractShiroFilter.java:292) at org.apache.shiro.web.servlet.A
>>> bstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359) at
>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>>> Filter(ParseBlobUploadFilter.java:125) at org.mortbay.jetty.servlet.Serv
>>> letHandler$CachedChain.doFilter(ServletHandler.java:1157) at
>>> com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>>> .doFilter(TransactionCleanupFilter.java:48) at
>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>>> lerWrapper.handle(HandlerWrapper.java:152) at
>>> org.mortbay.jetty.Server.handle(Server.java:326) at
>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchServletRequest(JavaRuntime.java:559) at
>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContext(TraceContext.java:311) at
>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>> at java.lang.Thread.run(Thread.java:745)
>>>
>>>
>>> The following is the exception when using ServletContainerSessionManager
>>> :
>>>
>>> Failed startup of context com.google.apphosting.utils.je
>>> tty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home
>>> /apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
>>> org.apache.shiro.config.ConfigurationException: Unable to determine if
>>> property [sessionManager.sessionIdCookie.maxAge] represents a
>>> java.util.Set at org.apache.shiro.config.Reflec
>>> tionBuilder.isTypedProperty(ReflectionBuilder.java:264) at
>>> org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:544)
>>> at org.apache.shiro.config.ReflectionBuilder.applySingleProperty(ReflectionBuilder.java:206)
>>> at org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:167)
>>> at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:124)
>>> at org.apache.shiro.config.IniSecurityManagerFactory.buildInsta
>>> nces(IniSecurityManagerFactory.java:161) at
>>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>> rityManager(IniSecurityManagerFactory.java:124) at
>>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>>> rityManager(IniSecurityManagerFactory.java:102) at
>>> org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>> ance(IniSecurityManagerFactory.java:88) at
>>> org.apache.shiro.config.IniSecurityManagerFactory.createInst
>>> ance(IniSecurityManagerFactory.java:46) at
>>> org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:123)
>>> at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:47)
>>> at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurity
>>> Manager(IniWebEnvironment.java:203) at org.apache.shiro.web.env.IniWe
>>> bEnvironment.configure(IniWebEnvironment.java:99) at
>>> org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:92)
>>> at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45) at
>>> org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40) at
>>> org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(EnvironmentLoader.java:221)
>>> at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:133)
>>> at org.apache.shiro.web.env.EnvironmentLoaderListener.contextIn
>>> itialized(EnvironmentLoaderListener.java:58) at
>>> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
>>> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at
>>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
>>> at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
>>> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
>>> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.cre
>>> ateHandler(AppVersionHandlerMap.java:203) at
>>> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.get
>>> Handler(AppVersionHandlerMap.java:176) at com.google.apphosting.runtime.
>>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:133)
>>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchServletRequest(JavaRuntime.java:559) at
>>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>>> .runInInheritedContext(TraceContext.java:311) at
>>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>>> at java.lang.Thread.run(Thread.java:745) Caused by:
>>> java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
>>> class 'class org.apache.shiro.web.session.m
>>> gt.ServletContainerSessionManager' at org.apache.commons.beanutils.P
>>> ropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1257) at
>>> org.apache.commons.beanutils.PropertyUtilsBean.getNestedProp
>>> erty(PropertyUtilsBean.java:808) at org.apache.commons.beanutils.P
>>> ropertyUtilsBean.getProperty(PropertyUtilsBean.java:884) at
>>> org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDe
>>> scriptor(PropertyUtilsBean.java:931) at org.apache.commons.beanutils.P
>>> ropertyUtils.getPropertyDescriptor(PropertyUtils.java:498) at
>>> org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:251)
>>> ... 39 more
>>>
>>>
>>>
>>> Regards,
>>> Harshdeep S Jawanda
>>>
>>> On 14 March 2017 at 20:51, Brian Demers <br...@gmail.com> wrote:
>>>
>>>> Can you post the stacktraces ?
>>>>
>>>>
>>>> On Tue, Mar 14, 2017 at 3:36 AM, Harshdeep S Jawanda <
>>>> hsjawanda@gmail.com> wrote:
>>>>
>>>>> Initially I was not explicitly setting the session manager in my
>>>>> shiro.ini, so it defaults to ServletContainerSessionManager.
>>>>> ServletContainerSessionManager doesn't have a sessionIdCookie property, so
>>>>> I get the NoSuchMethodException exception during startup (if I use
>>>>> securityManager.sessionManager.sessionIdCookie.maxAge in shiro.ini).
>>>>>
>>>>> If I try to explicitly set the session manager to
>>>>> DefaultWebSessionManager in shiro.ini, I get the previously mentioned
>>>>> AccessControlException, which, as far as I can make out, is because
>>>>> DefaultWebSessionManager must be trying to write to disk, and that is
>>>>> forbidden on Google App Engine.
>>>>>
>>>>> I also tried to do user.getSession().setTimeout(timeoutValue * 1000)
>>>>> immediately after user logs in (with ServletContainerSessionManager
>>>>> active), but that seems to have no effect. httpServletRequest.getSession(
>>>>> ).setMaxInactiveInterval(timeoutValue) didn't work either.
>>>>>
>>>>> Any suggestions? There must be a way to set session cookie timeout on
>>>>> GAE using Shiro...
>>>>>
>>>>>
>>>>> Regards,
>>>>> Harshdeep S Jawanda
>>>>>
>>>>> On 13 March 2017 at 20:22, Brian Demers <br...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> If you are using a shiro.ini the property would be:
>>>>>> securityManager.sessionManager.sessionIdCookie.maxAge = <int>
>>>>>>
>>>>>> Otherwise you can traverse your beans, something like:
>>>>>> sessionManger.getSessionIdCookie().setMaxAge(<int>)
>>>>>>
>>>>>> On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <
>>>>>> hsjawanda@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I wondered if anybody could help me with setting the session cookie
>>>>>>> lifetime for Shiro on GAE.
>>>>>>>
>>>>>>> I tried with DefaultWebSessionManager but I get an
>>>>>>> AccessControlException:
>>>>>>>
>>>>>>> java.security.AccessControlException: access denied
>>>>>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>>>>>
>>>>>>> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000)
>>>>>>> but that doesn't work either. The JSESSIONID cookie continues to show an
>>>>>>> Expires value of "At end of session".
>>>>>>>
>>>>>>> Regards,
>>>>>>> Harshdeep S Jawanda
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
Do the stack traces give you any idea?

Sent from my Moto X2

On 14-Mar-2017 21:31, "Harshdeep S Jawanda" <hs...@gmail.com> wrote:

> Second try...
>
> When using DefaultWebSessionManager:
>
> Uncaught exception from servlet
> java.security.AccessControlException: access denied
> ("java.lang.RuntimePermission" "modifyThreadGroup")
>     at java.security.AccessControlContext.checkPermission(
> AccessControlContext.java:484)
>     at java.security.AccessController.checkPermission(
> AccessController.java:698)
>     at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>     at com.google.apphosting.runtime.security.CustomSecurityManager.
> checkPermission(CustomSecurityManager.java:55)
>     at com.google.apphosting.runtime.security.CustomSecurityManager.
> checkAccess(CustomSecurityManager.java:136)
>     at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
>     at java.lang.Thread.init(Thread.java:391)
>     at java.lang.Thread.init(Thread.java:349)
>     at java.lang.Thread.<init>(Thread.java:461)
>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidati
> onScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.<
> init>(ThreadPoolExecutor.java:600)
>     at java.util.concurrent.ThreadPoolExecutor.addWorker(
> ThreadPoolExecutor.java:943)
>     at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(
> ThreadPoolExecutor.java:1635)
>     at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(
> ScheduledThreadPoolExecutor.java:307)
>     at java.util.concurrent.ScheduledThreadPoolExecutor.
> scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:566)
>     at java.util.concurrent.Executors$DelegatedScheduledExecutorServ
> ice.scheduleAtFixedRate(Executors.java:695)
>     at org.apache.shiro.session.mgt.ExecutorServiceSessionValidati
> onScheduler.enableSessionValidation(ExecutorServiceSessionValidati
> onScheduler.java:92)
>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManag
> er.enableSessionValidation(AbstractValidatingSessionManager.java:232)
>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManager.
> enableSessionValidationIfNecessary(AbstractValidatingSessionManag
> er.java:86)
>     at org.apache.shiro.session.mgt.AbstractValidatingSessionManag
> er.doGetSession(AbstractValidatingSessionManager.java:114)
>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.
> lookupSession(AbstractNativeSessionManager.java:108)
>     at org.apache.shiro.session.mgt.AbstractNativeSessionManager.
> getSession(AbstractNativeSessionManager.java:100)
>     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.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157)
>     at com.googlecode.objectify.ObjectifyFilter.doFilter(
> ObjectifyFilter.java:48)
>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157)
>     at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(
> ParseBlobUploadFilter.java:125)
>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157)
>     at com.google.apphosting.runtime.jetty.SaveSessionFilter.
> doFilter(SaveSessionFilter.java:37)
>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157)
>     at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilt
> er.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157)
>     at com.google.apphosting.utils.servlet.TransactionCleanupFilter.
> doFilter(TransactionCleanupFilter.java:48)
>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157)
>     at org.mortbay.jetty.servlet.ServletHandler.handle(
> ServletHandler.java:388)
>     at org.mortbay.jetty.security.SecurityHandler.handle(
> SecurityHandler.java:216)
>     at org.mortbay.jetty.servlet.SessionHandler.handle(
> SessionHandler.java:182)
>     at org.mortbay.jetty.handler.ContextHandler.handle(
> ContextHandler.java:765)
>     at org.mortbay.jetty.webapp.WebAppContext.handle(
> WebAppContext.java:418)
>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.
> handle(AppVersionHandlerMap.java:257)
>     at org.mortbay.jetty.handler.HandlerWrapper.handle(
> HandlerWrapper.java:152)
>     at org.mortbay.jetty.Server.handle(Server.java:326)
>     at org.mortbay.jetty.HttpConnection.handleRequest(
> HttpConnection.java:542)
>     at org.mortbay.jetty.HttpConnection$RequestHandler.
> headerComplete(HttpConnection.java:923)
>     at com.google.apphosting.runtime.jetty.RpcRequestParser.
> parseAvailable(RpcRequestParser.java:76)
>     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.
> serviceRequest(JettyServletEngineAdapter.java:145)
>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchServletRequest(JavaRuntime.java:559)
>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchRequest(JavaRuntime.java:519)
>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> run(JavaRuntime.java:489)
>     at com.google.tracing.TraceContext$TraceContextRunnable.
> runInContext(TraceContext.java:453)
>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(
> TraceContext.java:460)
>     at com.google.tracing.CurrentContext.runInContext(
> CurrentContext.java:293)
>     at com.google.tracing.TraceContext$AbstractTraceContextCallback.
> runInInheritedContextNoUnref(TraceContext.java:319)
>     at com.google.tracing.TraceContext$AbstractTraceContextCallback.
> runInInheritedContext(TraceContext.java:311)
>     at com.google.tracing.TraceContext$TraceContextRunnable.run(
> TraceContext.java:457)
>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
> ThreadGroupPool.java:238)
>     at java.lang.Thread.run(Thread.java:745)
>
> When using ServletContainerSessionManager:
>
> Failed startup of context com.google.apphosting.utils.jetty.
> RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home/
> apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
> org.apache.shiro.config.ConfigurationException: Unable to determine if
> property [sessionManager.sessionIdCookie.maxAge] represents a
> java.util.Set
>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(
> ReflectionBuilder.java:264)
>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(
> ReflectionBuilder.java:544)
>     at org.apache.shiro.config.ReflectionBuilder.applySingleProperty(
> ReflectionBuilder.java:206)
>     at org.apache.shiro.config.ReflectionBuilder.applyProperty(
> ReflectionBuilder.java:167)
>     at org.apache.shiro.config.ReflectionBuilder.buildObjects(
> ReflectionBuilder.java:124)
>     at org.apache.shiro.config.IniSecurityManagerFactory.buildInstances(
> IniSecurityManagerFactory.java:161)
>     at org.apache.shiro.config.IniSecurityManagerFactory.
> createSecurityManager(IniSecurityManagerFactory.java:124)
>     at org.apache.shiro.config.IniSecurityManagerFactory.
> createSecurityManager(IniSecurityManagerFactory.java:102)
>     at org.apache.shiro.config.IniSecurityManagerFactory.createInstance(
> IniSecurityManagerFactory.java:88)
>     at org.apache.shiro.config.IniSecurityManagerFactory.createInstance(
> IniSecurityManagerFactory.java:46)
>     at org.apache.shiro.config.IniFactorySupport.createInstance(
> IniFactorySupport.java:123)
>     at org.apache.shiro.util.AbstractFactory.getInstance(
> AbstractFactory.java:47)
>     at org.apache.shiro.web.env.IniWebEnvironment.
> createWebSecurityManager(IniWebEnvironment.java:203)
>     at org.apache.shiro.web.env.IniWebEnvironment.configure(
> IniWebEnvironment.java:99)
>     at org.apache.shiro.web.env.IniWebEnvironment.init(
> IniWebEnvironment.java:92)
>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
>     at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
>     at org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(
> EnvironmentLoader.java:221)
>     at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(
> EnvironmentLoader.java:133)
>     at org.apache.shiro.web.env.EnvironmentLoaderListener.
> contextInitialized(EnvironmentLoaderListener.java:58)
>     at org.mortbay.jetty.handler.ContextHandler.startContext(
> ContextHandler.java:548)
>     at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>     at org.mortbay.jetty.webapp.WebAppContext.startContext(
> WebAppContext.java:1250)
>     at org.mortbay.jetty.handler.ContextHandler.doStart(
> ContextHandler.java:517)
>     at org.mortbay.jetty.webapp.WebAppContext.doStart(
> WebAppContext.java:467)
>     at org.mortbay.component.AbstractLifeCycle.start(
> AbstractLifeCycle.java:50)
>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.
> createHandler(AppVersionHandlerMap.java:203)
>     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.
> getHandler(AppVersionHandlerMap.java:176)
>     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.
> serviceRequest(JettyServletEngineAdapter.java:133)
>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchServletRequest(JavaRuntime.java:559)
>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchRequest(JavaRuntime.java:519)
>     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> run(JavaRuntime.java:489)
>     at com.google.tracing.TraceContext$TraceContextRunnable.
> runInContext(TraceContext.java:453)
>     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(
> TraceContext.java:460)
>     at com.google.tracing.CurrentContext.runInContext(
> CurrentContext.java:293)
>     at com.google.tracing.TraceContext$AbstractTraceContextCallback.
> runInInheritedContextNoUnref(TraceContext.java:319)
>     at com.google.tracing.TraceContext$AbstractTraceContextCallback.
> runInInheritedContext(TraceContext.java:311)
>     at com.google.tracing.TraceContext$TraceContextRunnable.run(
> TraceContext.java:457)
>     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
> ThreadGroupPool.java:238)
>     at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NoSuchMethodException:
> Unknown property 'sessionIdCookie' on class 'class
> org.apache.shiro.web.session.mgt.ServletContainerSessionManager'
>     at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(
> PropertyUtilsBean.java:1257)
>     at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(
> PropertyUtilsBean.java:808)
>     at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(
> PropertyUtilsBean.java:884)
>     at org.apache.commons.beanutils.PropertyUtilsBean.
> getPropertyDescriptor(PropertyUtilsBean.java:931)
>     at org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptor(
> PropertyUtils.java:498)
>     at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(
> ReflectionBuilder.java:251)
>     ... 39 more
>
>
> Regards,
> Harshdeep S Jawanda
>
> On 14 March 2017 at 21:23, Harshdeep S Jawanda <hs...@gmail.com>
> wrote:
>
>> This is from when I set the session manager to DefaultWebSessionManager
>> (happens during server startup):
>>
>> java.security.AccessControlException: access denied
>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>> java.security.AccessControlContext.checkPermission(AccessCon
>> trolContext.java:484
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessControlContext.java&line=484&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at java.security.AccessController.checkPermission(AccessControl
>> ler.java:698
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessController.java&line=698&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>> at com.google.apphosting.runtime.security.CustomSecurityManager
>> .checkPermission(CustomSecurityManager.java:55) at
>> com.google.apphosting.runtime.security.CustomSecurityManager
>> .checkAccess(CustomSecurityManager.java:136) at
>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>> java.lang.Thread.init(Thread.java:391) at java.lang.Thread.init(Thread.java:349)
>> at java.lang.Thread.<init>(Thread.java:461) at
>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>> nScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=87&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>> ute(ScheduledThreadPoolExecutor.java:307) at
>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>> vice.scheduleAtFixedRate(Executors.java:695) at
>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>> nScheduler.enableSessionValidation(ExecutorServiceSessionVal
>> idationScheduler.java:92
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=92&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=232&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>> r.enableSessionValidationIfNecessary(AbstractValidatingSessi
>> onManager.java:86
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=86&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>> r.doGetSession(AbstractValidatingSessionManager.java:114
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=114&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>> okupSession(AbstractNativeSessionManager.java:108
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=108&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.getSession(
>> AbstractNativeSessionManager.java:100
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=100&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.mgt.SessionsSecurityManager.getSession(Sess
>> ionsSecurityManager.java:125
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FSessionsSecurityManager.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(
>> DefaultSecurityManager.java:456
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=456&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(D
>> efaultSecurityManager.java:442
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=442&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(De
>> faultSecurityManager.java:338
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=338&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsubject%2FSubject.java&line=846&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(
>> WebSubject.java:148
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fsubject%2FWebSubject.java&line=148&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(
>> AbstractShiroFilter.java:292
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=292&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(
>> AbstractShiroFilter.java:359
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=359&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
>> ncePerRequestFilter.java:125
>> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FOncePerRequestFilter.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>> Filter(ParseBlobUploadFilter.java:125) at org.mortbay.jetty.servlet.Serv
>> letHandler$CachedChain.doFilter(ServletHandler.java:1157) at
>> com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>> .doFilter(TransactionCleanupFilter.java:48) at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>> lerWrapper.handle(HandlerWrapper.java:152) at
>> org.mortbay.jetty.Server.handle(Server.java:326) at
>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchServletRequest(JavaRuntime.java:559) at
>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContext(TraceContext.java:311) at
>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>> at java.lang.Thread.run(Thread.java:745)
>>
>> java.security.AccessControlException: access denied
>> ("java.lang.RuntimePermission" "modifyThreadGroup") at
>> java.security.AccessControlContext.checkPermission(AccessControlContext.java:484)
>> at java.security.AccessController.checkPermission(AccessController.java:698)
>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>> at com.google.apphosting.runtime.security.CustomSecurityManager
>> .checkPermission(CustomSecurityManager.java:55) at
>> com.google.apphosting.runtime.security.CustomSecurityManager
>> .checkAccess(CustomSecurityManager.java:136) at
>> java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
>> java.lang.Thread.init(Thread.java:391) at java.lang.Thread.init(Thread.java:349)
>> at java.lang.Thread.<init>(Thread.java:461) at
>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>> nScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
>> at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
>> at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
>> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
>> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExec
>> ute(ScheduledThreadPoolExecutor.java:307) at
>> java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtF
>> ixedRate(ScheduledThreadPoolExecutor.java:566) at
>> java.util.concurrent.Executors$DelegatedScheduledExecutorSer
>> vice.scheduleAtFixedRate(Executors.java:695) at
>> org.apache.shiro.session.mgt.ExecutorServiceSessionValidatio
>> nScheduler.enableSessionValidation(ExecutorServiceSessionValidationScheduler.java:92)
>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>> r.enableSessionValidation(AbstractValidatingSessionManager.java:232) at
>> org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>> r.enableSessionValidationIfNecessary(AbstractValidatingSessionManager.java:86)
>> at org.apache.shiro.session.mgt.AbstractValidatingSessionManage
>> r.doGetSession(AbstractValidatingSessionManager.java:114) at
>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.lo
>> okupSession(AbstractNativeSessionManager.java:108) at
>> org.apache.shiro.session.mgt.AbstractNativeSessionManager.ge
>> tSession(AbstractNativeSessionManager.java:100) at
>> org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:125)
>> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSe
>> ssion(DefaultSecurityManager.java:456) at org.apache.shiro.mgt.DefaultSe
>> curityManager.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.createSubje
>> ct(AbstractShiroFilter.java:292) at org.apache.shiro.web.servlet.A
>> bstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359) at
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.do
>> Filter(ParseBlobUploadFilter.java:125) at org.mortbay.jetty.servlet.Serv
>> letHandler$CachedChain.doFilter(ServletHandler.java:1157) at
>> com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at com.google.apphosting.utils.servlet.JdbcMySqlConnectionClean
>> upFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at com.google.apphosting.utils.servlet.TransactionCleanupFilter
>> .doFilter(TransactionCleanupFilter.java:48) at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.han
>> dle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.Hand
>> lerWrapper.handle(HandlerWrapper.java:152) at
>> org.mortbay.jetty.Server.handle(Server.java:326) at
>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>> at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAv
>> ailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnecti
>> on.handle(HttpConnection.java:404) at com.google.apphosting.runtime.
>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchServletRequest(JavaRuntime.java:559) at
>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContext(TraceContext.java:311) at
>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>> at java.lang.Thread.run(Thread.java:745)
>>
>>
>> The following is the exception when using ServletContainerSessionManager:
>>
>> Failed startup of context com.google.apphosting.utils.je
>> tty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/
>> home/apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
>> org.apache.shiro.config.ConfigurationException: Unable to determine if
>> property [sessionManager.sessionIdCookie.maxAge] represents a
>> java.util.Set at org.apache.shiro.config.Reflec
>> tionBuilder.isTypedProperty(ReflectionBuilder.java:264) at
>> org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:544)
>> at org.apache.shiro.config.ReflectionBuilder.applySingleProperty(ReflectionBuilder.java:206)
>> at org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:167)
>> at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:124)
>> at org.apache.shiro.config.IniSecurityManagerFactory.buildInsta
>> nces(IniSecurityManagerFactory.java:161) at
>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>> rityManager(IniSecurityManagerFactory.java:124) at
>> org.apache.shiro.config.IniSecurityManagerFactory.createSecu
>> rityManager(IniSecurityManagerFactory.java:102) at
>> org.apache.shiro.config.IniSecurityManagerFactory.createInst
>> ance(IniSecurityManagerFactory.java:88) at org.apache.shiro.config.IniSec
>> urityManagerFactory.createInstance(IniSecurityManagerFactory.java:46) at
>> org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:123)
>> at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:47)
>> at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurity
>> Manager(IniWebEnvironment.java:203) at org.apache.shiro.web.env.IniWe
>> bEnvironment.configure(IniWebEnvironment.java:99) at
>> org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:92)
>> at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45) at
>> org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40) at
>> org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(EnvironmentLoader.java:221)
>> at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:133)
>> at org.apache.shiro.web.env.EnvironmentLoaderListener.contextIn
>> itialized(EnvironmentLoaderListener.java:58) at
>> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
>> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at
>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
>> at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
>> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
>> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.cre
>> ateHandler(AppVersionHandlerMap.java:203) at
>> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.get
>> Handler(AppVersionHandlerMap.java:176) at com.google.apphosting.runtime.
>> jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:133)
>> at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchServletRequest(JavaRuntime.java:559) at
>> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.di
>> spatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
>> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
>> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
>> at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
>> at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
>> at com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContextNoUnref(TraceContext.java:319) at
>> com.google.tracing.TraceContext$AbstractTraceContextCallback
>> .runInInheritedContext(TraceContext.java:311) at
>> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
>> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
>> at java.lang.Thread.run(Thread.java:745) Caused by:
>> java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
>> class 'class org.apache.shiro.web.session.mgt.ServletContainerSessionManager'
>> at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProp
>> erty(PropertyUtilsBean.java:1257) at org.apache.commons.beanutils.P
>> ropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:808) at
>> org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:884)
>> at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDe
>> scriptor(PropertyUtilsBean.java:931) at org.apache.commons.beanutils.P
>> ropertyUtils.getPropertyDescriptor(PropertyUtils.java:498) at
>> org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:251)
>> ... 39 more
>>
>>
>>
>> Regards,
>> Harshdeep S Jawanda
>>
>> On 14 March 2017 at 20:51, Brian Demers <br...@gmail.com> wrote:
>>
>>> Can you post the stacktraces ?
>>>
>>>
>>> On Tue, Mar 14, 2017 at 3:36 AM, Harshdeep S Jawanda <
>>> hsjawanda@gmail.com> wrote:
>>>
>>>> Initially I was not explicitly setting the session manager in my
>>>> shiro.ini, so it defaults to ServletContainerSessionManager.
>>>> ServletContainerSessionManager doesn't have a sessionIdCookie property, so
>>>> I get the NoSuchMethodException exception during startup (if I use
>>>> securityManager.sessionManager.sessionIdCookie.maxAge in shiro.ini).
>>>>
>>>> If I try to explicitly set the session manager to
>>>> DefaultWebSessionManager in shiro.ini, I get the previously mentioned
>>>> AccessControlException, which, as far as I can make out, is because
>>>> DefaultWebSessionManager must be trying to write to disk, and that is
>>>> forbidden on Google App Engine.
>>>>
>>>> I also tried to do user.getSession().setTimeout(timeoutValue * 1000)
>>>> immediately after user logs in (with ServletContainerSessionManager
>>>> active), but that seems to have no effect. httpServletRequest.getSession(
>>>> ).setMaxInactiveInterval(timeoutValue) didn't work either.
>>>>
>>>> Any suggestions? There must be a way to set session cookie timeout on
>>>> GAE using Shiro...
>>>>
>>>>
>>>> Regards,
>>>> Harshdeep S Jawanda
>>>>
>>>> On 13 March 2017 at 20:22, Brian Demers <br...@gmail.com> wrote:
>>>>
>>>>> If you are using a shiro.ini the property would be:
>>>>> securityManager.sessionManager.sessionIdCookie.maxAge = <int>
>>>>>
>>>>> Otherwise you can traverse your beans, something like:
>>>>> sessionManger.getSessionIdCookie().setMaxAge(<int>)
>>>>>
>>>>> On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <
>>>>> hsjawanda@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I wondered if anybody could help me with setting the session cookie
>>>>>> lifetime for Shiro on GAE.
>>>>>>
>>>>>> I tried with DefaultWebSessionManager but I get an
>>>>>> AccessControlException:
>>>>>>
>>>>>> java.security.AccessControlException: access denied
>>>>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>>>>
>>>>>> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000) but
>>>>>> that doesn't work either. The JSESSIONID cookie continues to show an
>>>>>> Expires value of "At end of session".
>>>>>>
>>>>>> Regards,
>>>>>> Harshdeep S Jawanda
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
Second try...

When using DefaultWebSessionManager:

Uncaught exception from servlet
java.security.AccessControlException: access denied
("java.lang.RuntimePermission" "modifyThreadGroup")
    at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:484)
    at
java.security.AccessController.checkPermission(AccessController.java:698)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at
com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:55)
    at
com.google.apphosting.runtime.security.CustomSecurityManager.checkAccess(CustomSecurityManager.java:136)
    at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
    at java.lang.Thread.init(Thread.java:391)
    at java.lang.Thread.init(Thread.java:349)
    at java.lang.Thread.<init>(Thread.java:461)
    at
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
    at
java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
    at
java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
    at
java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:307)
    at
java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:566)
    at
java.util.concurrent.Executors$DelegatedScheduledExecutorService.scheduleAtFixedRate(Executors.java:695)
    at
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler.enableSessionValidation(ExecutorServiceSessionValidationScheduler.java:92)
    at
org.apache.shiro.session.mgt.AbstractValidatingSessionManager.enableSessionValidation(AbstractValidatingSessionManager.java:232)
    at
org.apache.shiro.session.mgt.AbstractValidatingSessionManager.enableSessionValidationIfNecessary(AbstractValidatingSessionManager.java:86)
    at
org.apache.shiro.session.mgt.AbstractValidatingSessionManager.doGetSession(AbstractValidatingSessionManager.java:114)
    at
org.apache.shiro.session.mgt.AbstractNativeSessionManager.lookupSession(AbstractNativeSessionManager.java:108)
    at
org.apache.shiro.session.mgt.AbstractNativeSessionManager.getSession(AbstractNativeSessionManager.java:100)
    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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at
com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at
com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at
com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at
com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:257)
    at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
    at
com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
    at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:559)
    at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:519)
    at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:489)
    at
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
    at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
    at
com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
    at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:319)
    at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
    at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
    at
com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
    at java.lang.Thread.run(Thread.java:745)

When using ServletContainerSessionManager:

Failed startup of context
com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@6ea1bf09
{/,/base/data/home/apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
org.apache.shiro.config.ConfigurationException: Unable to determine if
property [sessionManager.sessionIdCookie.maxAge] represents a java.util.Set
    at
org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:264)
    at
org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:544)
    at
org.apache.shiro.config.ReflectionBuilder.applySingleProperty(ReflectionBuilder.java:206)
    at
org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:167)
    at
org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:124)
    at
org.apache.shiro.config.IniSecurityManagerFactory.buildInstances(IniSecurityManagerFactory.java:161)
    at
org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:124)
    at
org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:102)
    at
org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:88)
    at
org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:46)
    at
org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:123)
    at
org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:47)
    at
org.apache.shiro.web.env.IniWebEnvironment.createWebSecurityManager(IniWebEnvironment.java:203)
    at
org.apache.shiro.web.env.IniWebEnvironment.configure(IniWebEnvironment.java:99)
    at
org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:92)
    at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
    at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
    at
org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(EnvironmentLoader.java:221)
    at
org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:133)
    at
org.apache.shiro.web.env.EnvironmentLoaderListener.contextInitialized(EnvironmentLoaderListener.java:58)
    at
org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
    at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:203)
    at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:176)
    at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:133)
    at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:559)
    at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:519)
    at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:489)
    at
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
    at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
    at
com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
    at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:319)
    at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
    at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
    at
com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
    at java.lang.Thread.run(Thread.java:745) Caused by:
java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
class 'class
org.apache.shiro.web.session.mgt.ServletContainerSessionManager'
    at
org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1257)
    at
org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:808)
    at
org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:884)
    at
org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:931)
    at
org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptor(PropertyUtils.java:498)
    at
org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:251)
    ... 39 more


Regards,
Harshdeep S Jawanda

On 14 March 2017 at 21:23, Harshdeep S Jawanda <hs...@gmail.com> wrote:

> This is from when I set the session manager to DefaultWebSessionManager
> (happens during server startup):
>
> java.security.AccessControlException: access denied
> ("java.lang.RuntimePermission" "modifyThreadGroup") at java.security.
> AccessControlContext.checkPermission(AccessControlContext.java:484
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessControlContext.java&line=484&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at java.security.AccessController.checkPermission(AccessControll
> er.java:698
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessController.java&line=698&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at
> com.google.apphosting.runtime.security.CustomSecurityManager.
> checkPermission(CustomSecurityManager.java:55) at
> com.google.apphosting.runtime.security.CustomSecurityManager.checkAccess(
> CustomSecurityManager.java:136) at java.lang.ThreadGroup.
> checkAccess(ThreadGroup.java:315) at java.lang.Thread.init(Thread.java:391)
> at java.lang.Thread.init(Thread.java:349) at java.lang.Thread.<init>(Thread.java:461)
> at org.apache.shiro.session.mgt.ExecutorServiceSessionValidati
> onScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=87&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at java.util.concurrent.ThreadPoolExecutor$Worker.<
> init>(ThreadPoolExecutor.java:600) at java.util.concurrent.
> ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943) at
> java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(
> ScheduledThreadPoolExecutor.java:307) at java.util.concurrent.
> ScheduledThreadPoolExecutor.scheduleAtFixedRate(
> ScheduledThreadPoolExecutor.java:566) at java.util.concurrent.Executors$
> DelegatedScheduledExecutorService.scheduleAtFixedRate(Executors.java:695)
> at org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler.
> enableSessionValidation(ExecutorServiceSessionValidationScheduler.java:92
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=92&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.session.mgt.AbstractValidatingSessionManag
> er.enableSessionValidation(AbstractValidatingSessionManager.java:232
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=232&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.session.mgt.AbstractValidatingSessionManager.
> enableSessionValidationIfNecessary(AbstractValidatingSession
> Manager.java:86
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=86&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.session.mgt.AbstractValidatingSessionManag
> er.doGetSession(AbstractValidatingSessionManager.java:114
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=114&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.
> lookupSession(AbstractNativeSessionManager.java:108
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=108&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.session.mgt.AbstractNativeSessionManager.getSession(
> AbstractNativeSessionManager.java:100
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=100&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.mgt.SessionsSecurityManager.getSession(
> SessionsSecurityManager.java:125
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FSessionsSecurityManager.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(
> DefaultSecurityManager.java:456
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=456&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(
> DefaultSecurityManager.java:442
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=442&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(
> DefaultSecurityManager.java:338
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=338&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsubject%2FSubject.java&line=846&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(
> WebSubject.java:148
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fsubject%2FWebSubject.java&line=148&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(
> AbstractShiroFilter.java:292
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=292&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(
> AbstractShiroFilter.java:359
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=359&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(
> OncePerRequestFilter.java:125
> <https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FOncePerRequestFilter.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.googlecode.objectify.
> ObjectifyFilter.doFilter(ObjectifyFilter.java:48) at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.
> servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.
> jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37) at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.
> JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.
> TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.
> ServletHandler.handle(ServletHandler.java:388) at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.
> handle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.
> HandlerWrapper.handle(HandlerWrapper.java:152) at
> org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.
> HttpConnection.handleRequest(HttpConnection.java:542) at
> org.mortbay.jetty.HttpConnection$RequestHandler.
> headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.
> jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at
> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.
> serviceRequest(JettyServletEngineAdapter.java:145) at
> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchServletRequest(JavaRuntime.java:559) at
> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
> com.google.tracing.TraceContext$TraceContextRunnable.
> runInContext(TraceContext.java:453) at com.google.tracing.TraceContext$
> TraceContextRunnable$1.run(TraceContext.java:460) at com.google.tracing.
> CurrentContext.runInContext(CurrentContext.java:293) at
> com.google.tracing.TraceContext$AbstractTraceContextCallback.
> runInInheritedContextNoUnref(TraceContext.java:319) at com.google.tracing.
> TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
> at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
> at java.lang.Thread.run(Thread.java:745)
>
> java.security.AccessControlException: access denied
> ("java.lang.RuntimePermission" "modifyThreadGroup") at java.security.
> AccessControlContext.checkPermission(AccessControlContext.java:484) at
> java.security.AccessController.checkPermission(AccessController.java:698)
> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at
> com.google.apphosting.runtime.security.CustomSecurityManager.
> checkPermission(CustomSecurityManager.java:55) at
> com.google.apphosting.runtime.security.CustomSecurityManager.checkAccess(
> CustomSecurityManager.java:136) at java.lang.ThreadGroup.
> checkAccess(ThreadGroup.java:315) at java.lang.Thread.init(Thread.java:391)
> at java.lang.Thread.init(Thread.java:349) at java.lang.Thread.<init>(Thread.java:461)
> at org.apache.shiro.session.mgt.ExecutorServiceSessionValidati
> onScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
> at java.util.concurrent.ThreadPoolExecutor$Worker.<
> init>(ThreadPoolExecutor.java:600) at java.util.concurrent.
> ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943) at
> java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(
> ScheduledThreadPoolExecutor.java:307) at java.util.concurrent.
> ScheduledThreadPoolExecutor.scheduleAtFixedRate(
> ScheduledThreadPoolExecutor.java:566) at java.util.concurrent.Executors$
> DelegatedScheduledExecutorService.scheduleAtFixedRate(Executors.java:695)
> at org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler.
> enableSessionValidation(ExecutorServiceSessionValidationScheduler.java:92)
> at org.apache.shiro.session.mgt.AbstractValidatingSessionManag
> er.enableSessionValidation(AbstractValidatingSessionManager.java:232) at
> org.apache.shiro.session.mgt.AbstractValidatingSessionManager.
> enableSessionValidationIfNecessary(AbstractValidatingSessionManager.java:86)
> at org.apache.shiro.session.mgt.AbstractValidatingSessionManag
> er.doGetSession(AbstractValidatingSessionManager.java:114) at
> org.apache.shiro.session.mgt.AbstractNativeSessionManager.lookupSession(
> AbstractNativeSessionManager.java:108) at org.apache.shiro.session.mgt.
> AbstractNativeSessionManager.getSession(AbstractNativeSessionManager.java:100)
> 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.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.googlecode.objectify.
> ObjectifyFilter.doFilter(ObjectifyFilter.java:48) at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.
> servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.
> jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37) at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.
> JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.
> TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.
> doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.
> ServletHandler.handle(ServletHandler.java:388) at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.
> handle(AppVersionHandlerMap.java:257) at org.mortbay.jetty.handler.
> HandlerWrapper.handle(HandlerWrapper.java:152) at
> org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.
> HttpConnection.handleRequest(HttpConnection.java:542) at
> org.mortbay.jetty.HttpConnection$RequestHandler.
> headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.
> jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at
> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.
> serviceRequest(JettyServletEngineAdapter.java:145) at
> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchServletRequest(JavaRuntime.java:559) at
> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
> com.google.tracing.TraceContext$TraceContextRunnable.
> runInContext(TraceContext.java:453) at com.google.tracing.TraceContext$
> TraceContextRunnable$1.run(TraceContext.java:460) at com.google.tracing.
> CurrentContext.runInContext(CurrentContext.java:293) at
> com.google.tracing.TraceContext$AbstractTraceContextCallback.
> runInInheritedContextNoUnref(TraceContext.java:319) at com.google.tracing.
> TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
> at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
> at java.lang.Thread.run(Thread.java:745)
>
>
> The following is the exception when using ServletContainerSessionManager:
>
> Failed startup of context com.google.apphosting.utils.jetty.
> RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home/
> apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
> org.apache.shiro.config.ConfigurationException: Unable to determine if
> property [sessionManager.sessionIdCookie.maxAge] represents a
> java.util.Set at org.apache.shiro.config.ReflectionBuilder.
> isTypedProperty(ReflectionBuilder.java:264) at org.apache.shiro.config.
> ReflectionBuilder.applyProperty(ReflectionBuilder.java:544) at
> org.apache.shiro.config.ReflectionBuilder.applySingleProperty(ReflectionBuilder.java:206)
> at org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:167)
> at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:124)
> at org.apache.shiro.config.IniSecurityManagerFactory.buildInstances(
> IniSecurityManagerFactory.java:161) at org.apache.shiro.config.
> IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:124)
> at org.apache.shiro.config.IniSecurityManagerFactory.
> createSecurityManager(IniSecurityManagerFactory.java:102) at
> org.apache.shiro.config.IniSecurityManagerFactory.createInstance(
> IniSecurityManagerFactory.java:88) at org.apache.shiro.config.
> IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:46)
> at org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:123)
> at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:47)
> at org.apache.shiro.web.env.IniWebEnvironment.createWebSecurityManager(IniWebEnvironment.java:203)
> at org.apache.shiro.web.env.IniWebEnvironment.configure(IniWebEnvironment.java:99)
> at org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:92)
> at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45) at
> org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40) at
> org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(EnvironmentLoader.java:221)
> at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:133)
> at org.apache.shiro.web.env.EnvironmentLoaderListener.contextInitialized(
> EnvironmentLoaderListener.java:58) at org.mortbay.jetty.handler.
> ContextHandler.startContext(ContextHandler.java:548) at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:203)
> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:176)
> at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.
> serviceRequest(JettyServletEngineAdapter.java:133) at
> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchServletRequest(JavaRuntime.java:559) at
> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
> dispatchRequest(JavaRuntime.java:519) at com.google.apphosting.runtime.
> JavaRuntime$RequestRunnable.run(JavaRuntime.java:489) at
> com.google.tracing.TraceContext$TraceContextRunnable.
> runInContext(TraceContext.java:453) at com.google.tracing.TraceContext$
> TraceContextRunnable$1.run(TraceContext.java:460) at com.google.tracing.
> CurrentContext.runInContext(CurrentContext.java:293) at
> com.google.tracing.TraceContext$AbstractTraceContextCallback.
> runInInheritedContextNoUnref(TraceContext.java:319) at com.google.tracing.
> TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
> at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
> at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
> at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NoSuchMethodException:
> Unknown property 'sessionIdCookie' on class 'class
> org.apache.shiro.web.session.mgt.ServletContainerSessionManager' at
> org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1257)
> at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:808)
> at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:884)
> at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:931)
> at org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptor(PropertyUtils.java:498)
> at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:251)
> ... 39 more
>
>
>
> Regards,
> Harshdeep S Jawanda
>
> On 14 March 2017 at 20:51, Brian Demers <br...@gmail.com> wrote:
>
>> Can you post the stacktraces ?
>>
>>
>> On Tue, Mar 14, 2017 at 3:36 AM, Harshdeep S Jawanda <hsjawanda@gmail.com
>> > wrote:
>>
>>> Initially I was not explicitly setting the session manager in my
>>> shiro.ini, so it defaults to ServletContainerSessionManager.
>>> ServletContainerSessionManager doesn't have a sessionIdCookie property, so
>>> I get the NoSuchMethodException exception during startup (if I use
>>> securityManager.sessionManager.sessionIdCookie.maxAge in shiro.ini).
>>>
>>> If I try to explicitly set the session manager to
>>> DefaultWebSessionManager in shiro.ini, I get the previously mentioned
>>> AccessControlException, which, as far as I can make out, is because
>>> DefaultWebSessionManager must be trying to write to disk, and that is
>>> forbidden on Google App Engine.
>>>
>>> I also tried to do user.getSession().setTimeout(timeoutValue * 1000)
>>> immediately after user logs in (with ServletContainerSessionManager
>>> active), but that seems to have no effect. httpServletRequest.getSession(
>>> ).setMaxInactiveInterval(timeoutValue) didn't work either.
>>>
>>> Any suggestions? There must be a way to set session cookie timeout on
>>> GAE using Shiro...
>>>
>>>
>>> Regards,
>>> Harshdeep S Jawanda
>>>
>>> On 13 March 2017 at 20:22, Brian Demers <br...@gmail.com> wrote:
>>>
>>>> If you are using a shiro.ini the property would be:
>>>> securityManager.sessionManager.sessionIdCookie.maxAge = <int>
>>>>
>>>> Otherwise you can traverse your beans, something like:
>>>> sessionManger.getSessionIdCookie().setMaxAge(<int>)
>>>>
>>>> On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <
>>>> hsjawanda@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I wondered if anybody could help me with setting the session cookie
>>>>> lifetime for Shiro on GAE.
>>>>>
>>>>> I tried with DefaultWebSessionManager but I get an
>>>>> AccessControlException:
>>>>>
>>>>> java.security.AccessControlException: access denied
>>>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>>>
>>>>> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000) but
>>>>> that doesn't work either. The JSESSIONID cookie continues to show an
>>>>> Expires value of "At end of session".
>>>>>
>>>>> Regards,
>>>>> Harshdeep S Jawanda
>>>>>
>>>>
>>>>
>>>
>>
>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
This is from when I set the session manager to DefaultWebSessionManager
(happens during server startup):

java.security.AccessControlException: access denied
("java.lang.RuntimePermission" "modifyThreadGroup") at
java.security.AccessControlContext.checkPermission(
AccessControlContext.java:484
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessControlContext.java&line=484&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at java.security.AccessController.checkPermission(AccessController.java:698
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=java%2Fsecurity%2FAccessController.java&line=698&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at
com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:55)
at
com.google.apphosting.runtime.security.CustomSecurityManager.checkAccess(CustomSecurityManager.java:136)
at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
java.lang.Thread.init(Thread.java:391) at
java.lang.Thread.init(Thread.java:349) at
java.lang.Thread.<init>(Thread.java:461) at
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler$1.newThread(
ExecutorServiceSessionValidationScheduler.java:87
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=87&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at
java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
at
java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
at
java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
at
java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:307)
at
java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:566)
at
java.util.concurrent.Executors$DelegatedScheduledExecutorService.scheduleAtFixedRate(Executors.java:695)
at
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler.enableSessionValidation(
ExecutorServiceSessionValidationScheduler.java:92
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FExecutorServiceSessionValidationScheduler.java&line=92&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at
org.apache.shiro.session.mgt.AbstractValidatingSessionManager.enableSessionValidation(
AbstractValidatingSessionManager.java:232
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=232&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at
org.apache.shiro.session.mgt.AbstractValidatingSessionManager.enableSessionValidationIfNecessary(
AbstractValidatingSessionManager.java:86
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=86&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at
org.apache.shiro.session.mgt.AbstractValidatingSessionManager.doGetSession(
AbstractValidatingSessionManager.java:114
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractValidatingSessionManager.java&line=114&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lookupSession(
AbstractNativeSessionManager.java:108
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=108&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.session.mgt.AbstractNativeSessionManager.getSession(
AbstractNativeSessionManager.java:100
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsession%2Fmgt%2FAbstractNativeSessionManager.java&line=100&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.mgt.SessionsSecurityManager.getSession(
SessionsSecurityManager.java:125
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FSessionsSecurityManager.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(
DefaultSecurityManager.java:456
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=456&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(
DefaultSecurityManager.java:442
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=442&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(
DefaultSecurityManager.java:338
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fmgt%2FDefaultSecurityManager.java&line=338&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fsubject%2FSubject.java&line=846&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(
WebSubject.java:148
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fsubject%2FWebSubject.java&line=148&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(
AbstractShiroFilter.java:292
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=292&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(
AbstractShiroFilter.java:359
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FAbstractShiroFilter.java&line=359&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:125
<https://console.cloud.google.com/debug/fromlog?appModule=default&appVersion=0-7-3-hp-perf1&file=org%2Fapache%2Fshiro%2Fweb%2Fservlet%2FOncePerRequestFilter.java&line=125&logInsertId=58c74fd5000e6bf18fa69c74&logNanos=1489457101237910000&nestedLogIndex=6&project=hsjplowns>)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:257)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326) at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at
com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:559)
at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:519)
at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:489)
at
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:319)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
at
com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
at java.lang.Thread.run(Thread.java:745)

java.security.AccessControlException: access denied
("java.lang.RuntimePermission" "modifyThreadGroup") at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:484)
at
java.security.AccessController.checkPermission(AccessController.java:698)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at
com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:55)
at
com.google.apphosting.runtime.security.CustomSecurityManager.checkAccess(CustomSecurityManager.java:136)
at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) at
java.lang.Thread.init(Thread.java:391) at
java.lang.Thread.init(Thread.java:349) at
java.lang.Thread.<init>(Thread.java:461) at
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler$1.newThread(ExecutorServiceSessionValidationScheduler.java:87)
at
java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:600)
at
java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
at
java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1635)
at
java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:307)
at
java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:566)
at
java.util.concurrent.Executors$DelegatedScheduledExecutorService.scheduleAtFixedRate(Executors.java:695)
at
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler.enableSessionValidation(ExecutorServiceSessionValidationScheduler.java:92)
at
org.apache.shiro.session.mgt.AbstractValidatingSessionManager.enableSessionValidation(AbstractValidatingSessionManager.java:232)
at
org.apache.shiro.session.mgt.AbstractValidatingSessionManager.enableSessionValidationIfNecessary(AbstractValidatingSessionManager.java:86)
at
org.apache.shiro.session.mgt.AbstractValidatingSessionManager.doGetSession(AbstractValidatingSessionManager.java:114)
at
org.apache.shiro.session.mgt.AbstractNativeSessionManager.lookupSession(AbstractNativeSessionManager.java:108)
at
org.apache.shiro.session.mgt.AbstractNativeSessionManager.getSession(AbstractNativeSessionManager.java:100)
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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:257)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326) at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at
com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:145)
at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:559)
at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:519)
at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:489)
at
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:319)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
at
com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
at java.lang.Thread.run(Thread.java:745)


The following is the exception when using ServletContainerSessionManager:

Failed startup of context
com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@6ea1bf09{/,/base/data/home/apps/s~hsjplowns/0-7-3-hp-perf1.399822149927584543}
org.apache.shiro.config.ConfigurationException: Unable to determine if
property [sessionManager.sessionIdCookie.maxAge] represents a java.util.Set
at
org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:264)
at
org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:544)
at
org.apache.shiro.config.ReflectionBuilder.applySingleProperty(ReflectionBuilder.java:206)
at
org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:167)
at
org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:124)
at
org.apache.shiro.config.IniSecurityManagerFactory.buildInstances(IniSecurityManagerFactory.java:161)
at
org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:124)
at
org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:102)
at
org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:88)
at
org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:46)
at
org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:123)
at
org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:47)
at
org.apache.shiro.web.env.IniWebEnvironment.createWebSecurityManager(IniWebEnvironment.java:203)
at
org.apache.shiro.web.env.IniWebEnvironment.configure(IniWebEnvironment.java:99)
at
org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:92)
at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45) at
org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40) at
org.apache.shiro.web.env.EnvironmentLoader.createEnvironment(EnvironmentLoader.java:221)
at
org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:133)
at
org.apache.shiro.web.env.EnvironmentLoaderListener.contextInitialized(EnvironmentLoaderListener.java:58)
at
org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:203)
at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:176)
at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:133)
at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:559)
at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:519)
at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:489)
at
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:453)
at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:293)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:319)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
at
com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:238)
at java.lang.Thread.run(Thread.java:745) Caused by:
java.lang.NoSuchMethodException: Unknown property 'sessionIdCookie' on
class 'class
org.apache.shiro.web.session.mgt.ServletContainerSessionManager' at
org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1257)
at
org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:808)
at
org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:884)
at
org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:931)
at
org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptor(PropertyUtils.java:498)
at
org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:251)
... 39 more



Regards,
Harshdeep S Jawanda

On 14 March 2017 at 20:51, Brian Demers <br...@gmail.com> wrote:

> Can you post the stacktraces ?
>
>
> On Tue, Mar 14, 2017 at 3:36 AM, Harshdeep S Jawanda <hs...@gmail.com>
> wrote:
>
>> Initially I was not explicitly setting the session manager in my
>> shiro.ini, so it defaults to ServletContainerSessionManager.
>> ServletContainerSessionManager doesn't have a sessionIdCookie property, so
>> I get the NoSuchMethodException exception during startup (if I use
>> securityManager.sessionManager.sessionIdCookie.maxAge in shiro.ini).
>>
>> If I try to explicitly set the session manager to
>> DefaultWebSessionManager in shiro.ini, I get the previously mentioned
>> AccessControlException, which, as far as I can make out, is because
>> DefaultWebSessionManager must be trying to write to disk, and that is
>> forbidden on Google App Engine.
>>
>> I also tried to do user.getSession().setTimeout(timeoutValue * 1000)
>> immediately after user logs in (with ServletContainerSessionManager
>> active), but that seems to have no effect. httpServletRequest.getSession(
>> ).setMaxInactiveInterval(timeoutValue) didn't work either.
>>
>> Any suggestions? There must be a way to set session cookie timeout on GAE
>> using Shiro...
>>
>>
>> Regards,
>> Harshdeep S Jawanda
>>
>> On 13 March 2017 at 20:22, Brian Demers <br...@gmail.com> wrote:
>>
>>> If you are using a shiro.ini the property would be:
>>> securityManager.sessionManager.sessionIdCookie.maxAge = <int>
>>>
>>> Otherwise you can traverse your beans, something like:
>>> sessionManger.getSessionIdCookie().setMaxAge(<int>)
>>>
>>> On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <
>>> hsjawanda@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I wondered if anybody could help me with setting the session cookie
>>>> lifetime for Shiro on GAE.
>>>>
>>>> I tried with DefaultWebSessionManager but I get an
>>>> AccessControlException:
>>>>
>>>> java.security.AccessControlException: access denied
>>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>>
>>>> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000) but
>>>> that doesn't work either. The JSESSIONID cookie continues to show an
>>>> Expires value of "At end of session".
>>>>
>>>> Regards,
>>>> Harshdeep S Jawanda
>>>>
>>>
>>>
>>
>

Re: Setting login expiry for Shiro on GAE

Posted by Brian Demers <br...@gmail.com>.
Can you post the stacktraces ?


On Tue, Mar 14, 2017 at 3:36 AM, Harshdeep S Jawanda <hs...@gmail.com>
wrote:

> Initially I was not explicitly setting the session manager in my
> shiro.ini, so it defaults to ServletContainerSessionManager.
> ServletContainerSessionManager doesn't have a sessionIdCookie property, so
> I get the NoSuchMethodException exception during startup (if I use
> securityManager.sessionManager.sessionIdCookie.maxAge in shiro.ini).
>
> If I try to explicitly set the session manager to DefaultWebSessionManager
> in shiro.ini, I get the previously mentioned AccessControlException, which,
> as far as I can make out, is because DefaultWebSessionManager must be
> trying to write to disk, and that is forbidden on Google App Engine.
>
> I also tried to do user.getSession().setTimeout(timeoutValue * 1000)
> immediately after user logs in (with ServletContainerSessionManager
> active), but that seems to have no effect. httpServletRequest.getSession(
> ).setMaxInactiveInterval(timeoutValue) didn't work either.
>
> Any suggestions? There must be a way to set session cookie timeout on GAE
> using Shiro...
>
>
> Regards,
> Harshdeep S Jawanda
>
> On 13 March 2017 at 20:22, Brian Demers <br...@gmail.com> wrote:
>
>> If you are using a shiro.ini the property would be:
>> securityManager.sessionManager.sessionIdCookie.maxAge = <int>
>>
>> Otherwise you can traverse your beans, something like:
>> sessionManger.getSessionIdCookie().setMaxAge(<int>)
>>
>> On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <
>> hsjawanda@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I wondered if anybody could help me with setting the session cookie
>>> lifetime for Shiro on GAE.
>>>
>>> I tried with DefaultWebSessionManager but I get an
>>> AccessControlException:
>>>
>>> java.security.AccessControlException: access denied
>>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>>
>>> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000) but
>>> that doesn't work either. The JSESSIONID cookie continues to show an
>>> Expires value of "At end of session".
>>>
>>> Regards,
>>> Harshdeep S Jawanda
>>>
>>
>>
>

Re: Setting login expiry for Shiro on GAE

Posted by Harshdeep S Jawanda <hs...@gmail.com>.
Initially I was not explicitly setting the session manager in my shiro.ini,
so it defaults to ServletContainerSessionManager.
ServletContainerSessionManager doesn't have a sessionIdCookie property, so
I get the NoSuchMethodException exception during startup (if I use
securityManager.sessionManager.sessionIdCookie.maxAge in shiro.ini).

If I try to explicitly set the session manager to DefaultWebSessionManager
in shiro.ini, I get the previously mentioned AccessControlException, which,
as far as I can make out, is because DefaultWebSessionManager must be
trying to write to disk, and that is forbidden on Google App Engine.

I also tried to do user.getSession().setTimeout(timeoutValue * 1000)
immediately after user logs in (with ServletContainerSessionManager
active), but that seems to have no effect.
httpServletRequest.getSession().setMaxInactiveInterval(timeoutValue) didn't
work either.

Any suggestions? There must be a way to set session cookie timeout on GAE
using Shiro...


Regards,
Harshdeep S Jawanda

On 13 March 2017 at 20:22, Brian Demers <br...@gmail.com> wrote:

> If you are using a shiro.ini the property would be:
> securityManager.sessionManager.sessionIdCookie.maxAge = <int>
>
> Otherwise you can traverse your beans, something like: sessionManger.
> getSessionIdCookie().setMaxAge(<int>)
>
> On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <hsjawanda@gmail.com
> > wrote:
>
>> Hi,
>>
>> I wondered if anybody could help me with setting the session cookie
>> lifetime for Shiro on GAE.
>>
>> I tried with DefaultWebSessionManager but I get an AccessControlException:
>>
>> java.security.AccessControlException: access denied
>> ("java.lang.RuntimePermission" "modifyThreadGroup")
>>
>> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000) but
>> that doesn't work either. The JSESSIONID cookie continues to show an
>> Expires value of "At end of session".
>>
>> Regards,
>> Harshdeep S Jawanda
>>
>
>

Re: Setting login expiry for Shiro on GAE

Posted by Brian Demers <br...@gmail.com>.
If you are using a shiro.ini the property would be:
securityManager.sessionManager.sessionIdCookie.maxAge = <int>

Otherwise you can traverse your beans, something like:
sessionManger.getSessionIdCookie().setMaxAge(<int>)

On Mon, Mar 13, 2017 at 12:41 AM, Harshdeep S Jawanda <hs...@gmail.com>
wrote:

> Hi,
>
> I wondered if anybody could help me with setting the session cookie
> lifetime for Shiro on GAE.
>
> I tried with DefaultWebSessionManager but I get an AccessControlException:
>
> java.security.AccessControlException: access denied
> ("java.lang.RuntimePermission" "modifyThreadGroup")
>
> Tried org.apache.shiro.session.Session#setTimeout(432000 * 1000) but that
> doesn't work either. The JSESSIONID cookie continues to show an Expires
> value of "At end of session".
>
> Regards,
> Harshdeep S Jawanda
>