You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shiro.apache.org by "Francois Papon (Jira)" <ji...@apache.org> on 2020/07/05 15:41:00 UTC

[jira] [Updated] (SHIRO-778) onInit method on AuthenticatingRealm is called twice

     [ https://issues.apache.org/jira/browse/SHIRO-778?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Francois Papon updated SHIRO-778:
---------------------------------
    Fix Version/s: 2.0.0

> onInit method on AuthenticatingRealm is called twice
> ----------------------------------------------------
>
>                 Key: SHIRO-778
>                 URL: https://issues.apache.org/jira/browse/SHIRO-778
>             Project: Shiro
>          Issue Type: Bug
>    Affects Versions: 1.3.2, 1.5.3
>            Reporter: Pavel_K
>            Priority: Major
>             Fix For: 2.0.0
>
>          Time Spent: 3h
>  Remaining Estimate: 0h
>
> onInit method on AuthenticatingRealm is called twice. On the base of Brian Demers's turotial project I created test project [here|https://github.com/PashaTurok/shirotest.git]  .  To run test execute: mvn jetty:run
>  
> There will be the following ouput:
>  
> {code:java}
> [INFO] Initializing Shiro environment
> 17:45:03.576 [main] INFO o.a.shiro.web.env.EnvironmentLoader - Starting Shiro environment initialization.
> 17:45:04.233 [main] ERROR com.foo.TestRealm - Error # 0
> java.lang.Exception: null
>  at com.foo.TestRealm.onInit(TestRealm.java:25)
>  at org.apache.shiro.realm.AuthenticatingRealm.init(AuthenticatingRealm.java:395)
>  at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
>  at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
>  at org.apache.shiro.config.ReflectionBuilder$BeanConfigurationProcessor.execute(ReflectionBuilder.java:785)
>  at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:260)
>  at org.apache.shiro.config.IniSecurityManagerFactory.buildInstances(IniSecurityManagerFactory.java:167)
>  at org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:130)
>  at org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:108)
>  at org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:94)
>  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.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:843)
>  at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:533)
>  at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:816)
>  at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:345)
>  at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1404)
>  at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp(JettyWebAppContext.java:323)
>  at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1366)
>  at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:778)
>  at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:262)
>  at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:520)
>  at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:398)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>  at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>  at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>  at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>  at org.eclipse.jetty.server.Server.start(Server.java:411)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
>  at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>  at org.eclipse.jetty.server.Server.doStart(Server.java:378)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:460)
>  at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:328)
>  at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:170)
>  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
>  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
>  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
>  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
>  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
>  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
>  at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
>  at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
>  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
>  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
>  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
>  at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
>  at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
>  at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:498)
>  at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
>  at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
>  at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
>  at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
> 17:45:04.236 [main] ERROR com.foo.TestRealm - Error # 1
> java.lang.Exception: null
>  at com.foo.TestRealm.onInit(TestRealm.java:25)
>  at org.apache.shiro.realm.AuthenticatingRealm.init(AuthenticatingRealm.java:395)
>  at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:45)
>  at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:40)
>  at org.apache.shiro.util.LifecycleUtils.init(LifecycleUtils.java:61)
>  at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:264)
>  at org.apache.shiro.config.IniSecurityManagerFactory.buildInstances(IniSecurityManagerFactory.java:167)
>  at org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:130)
>  at org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:108)
>  at org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:94)
>  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.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:843)
>  at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:533)
>  at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:816)
>  at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:345)
>  at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1404)
>  at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp(JettyWebAppContext.java:323)
>  at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1366)
>  at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:778)
>  at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:262)
>  at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:520)
>  at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:398)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>  at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>  at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>  at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>  at org.eclipse.jetty.server.Server.start(Server.java:411)
>  at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
>  at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>  at org.eclipse.jetty.server.Server.doStart(Server.java:378)
>  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:460)
>  at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:328)
>  at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:170)
>  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
>  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
>  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
>  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
>  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
>  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
>  at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
>  at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
>  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
>  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
>  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
>  at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
>  at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
>  at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:498)
>  at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
>  at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
>  at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
>  at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
> 17:45:04.238 [main] INFO o.a.s.c.IniSecurityManagerFactory - Realms have been explicitly set on the SecurityManager instance - auto-setting of realms will not occur.{code}
> As I understand the problem is in 
> {code:java}
> org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:260)
> {code}
> and in 
> {code:java}
> org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:264)
> {code}
> lines. 
> Firstly I saw problem in v.1.5.3 but later I saw it and in 1.3.2



--
This message was sent by Atlassian Jira
(v8.3.4#803005)