Uploaded image for project: 'Shiro'
  1. Shiro
  2. SHIRO-778

onInit method on AuthenticatingRealm is called twice

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Resolved
    • 1.3.2, 1.5.3
    • 2.0.0-alpha
    • None
    • None

    Description

      onInit method on AuthenticatingRealm is called twice. On the base of Brian Demers's turotial project I created test project here  .  To run test execute: mvn jetty:run
       
      There will be the following ouput:
       

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

      As I understand the problem is in

      org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:260)
      

      and in

      org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:264)
      

      lines.

      Firstly I saw problem in v.1.5.3 but later I saw it and in 1.3.2

      Attachments

        Issue Links

          Activity

            People

              fpapon Francois Papon
              Pavel_K Pavel_K
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 3h 20m
                  3h 20m