Hi Luis, The asf mailing lists strip off attachments I'm afraid. Best thing is to upload somewhere then link to it.
That said, the reason that the repo is null is probably because you haven't included the appropriate module class as a dependency of your AppManifest. This is used to find packages to scan for domain services/repositories, so if the package containing the implementation of that repo isn't being scanned, then no instance will be instantiated by the framework to inject. (Separately, you might want to subscribe to this mailing list so I don't have to moderate your posts. And/or, we have a slack channel now, linked from support menu of the website) HTH, Dan. On Sat, 25 Jan 2020, 07:58 Luis Enrique Martínez López, < luis.marti...@vortech-it.com> wrote: > Hi, > > Attached a screenshot. > > It appears that applicationUserRepository is null. > > > > > > Regards > > Luis Martínez > > > > *De:* Luis Enrique Martínez López > *Enviado el:* miércoles, 22 de enero de 2020 10:39 p.m. > *Para:* users@isis.apache.org > *Asunto:* Security Module Realm - Error > > > > Hi > > I am trying to configure the security of Apache Isis as "Security Module > Realm", I did everything that comes in the documentation but I am getting > the following error: > > > > 631047 22:18:37,461 [IsisTransaction qtp246168102-19 INFO ] abort > transaction IsisTransaction@42052069[state=IN_PROGRESS,commands=0] > > 631052 22:18:37,466 [AbstractAuthenticator qtp246168102-19 WARN ] > Authentication failed for token submission > [org.apache.shiro.authc.UsernamePasswordToken - isis-module-security-admin, > > rememberMe=false]. Possible unexpected error? (Typical or expected login > exceptions should extend from AuthenticationException). > > java.lang.RuntimeException: An error occurred while executing code in a > temporary session > > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:366) > > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:344) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm.execute(IsisModuleSecurityRealm.java:221) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm.lookupPrincipal(IsisModuleSecurityRealm.java:138) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm.doGetAuthenticationInfo(IsisModuleSecurityRealm.java:76) > > at > org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:568) > > at > org.apache.shiro.authc.pam.ModularRealmAuthenticator.doSingleRealmAuthentication(ModularRealmAuthenticator.java:180) > > at > org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:267) > > at > org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198) > > at > org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106) > > at > org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270) > > at > org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256) > > at > org.apache.isis.security.shiro.ShiroAuthenticatorOrAuthorizor.authenticate(ShiroAuthenticatorOrAuthorizor.java:151) > > at > org.apache.isis.core.runtime.authentication.standard.AuthenticationManagerStandard.authenticate(AuthenticationManagerStandard.java:111) > > at > org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis.authenticate(AuthenticatedWebSessionForIsis.java:73) > > at > org.apache.wicket.authroles.authentication.AuthenticatedWebSession.signIn(AuthenticatedWebSession.java:66) > > at > org.apache.wicket.authroles.authentication.panel.SignInPanel.signIn(SignInPanel.java:210) > > at > org.apache.wicket.authroles.authentication.panel.SignInPanel.access$100(SignInPanel.java:46) > > at > org.apache.wicket.authroles.authentication.panel.SignInPanel$SignInForm.onSubmit(SignInPanel.java:305) > > at > org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1316) > > at org.apache.wicket.markup.html.form.Form.process(Form.java:976) > > at > org.apache.wicket.markup.html.form.StatelessForm.process(StatelessForm.java:100) > > at > org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:797) > > at > org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:708) > > 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.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258) > > at > org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:216) > > at > org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:241) > > at > org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234) > > at > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:895) > > at > org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) > > at > org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265) > > at > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222) > > at > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293) > > at > org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261) > > at > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203) > > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) > > at > org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter.doFilter(IsisLogOnExceptionFilter.java:52) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) > > at > org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) > > at > org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) > > at > org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) > > at > org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) > > at > org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) > > at > org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) > > at > org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) > > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) > > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) > > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) > > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) > > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) > > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) > > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) > > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) > > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) > > at org.eclipse.jetty.server.Server.handle(Server.java:517) > > at > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) > > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) > > at > org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261) > > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) > > at > org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) > > at > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) > > at > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) > > at java.lang.Thread.run(Thread.java:748) > > Caused by: java.lang.NullPointerException > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm$1.lookupUser(IsisModuleSecurityRealm.java:149) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm$1.execute(IsisModuleSecurityRealm.java:141) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm$1.execute(IsisModuleSecurityRealm.java:138) > > at > org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:188) > > at > org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:178) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm.doExecute(IsisModuleSecurityRealm.java:236) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm$3.call(IsisModuleSecurityRealm.java:227) > > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:364) > > ... 73 more > > 631069 22:18:37,483 [ShiroAuthenticatorOrAuthorizor qtp246168102-19 > ERROR] Unable to authenticate > > org.apache.shiro.authc.AuthenticationException: Authentication failed for > token submission [org.apache.shiro.authc.UsernamePasswordToken - > isis-module-security-admin, rememberMe=false]. > > Possible unexpected error? (Typical or expected login exceptions should > extend from AuthenticationException). > > at > org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:214) > > at > org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106) > > at > org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270) > > at > org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256) > > at > org.apache.isis.security.shiro.ShiroAuthenticatorOrAuthorizor.authenticate(ShiroAuthenticatorOrAuthorizor.java:151) > > at > org.apache.isis.core.runtime.authentication.standard.AuthenticationManagerStandard.authenticate(AuthenticationManagerStandard.java:111) > > at > org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis.authenticate(AuthenticatedWebSessionForIsis.java:73) > > at > org.apache.wicket.authroles.authentication.AuthenticatedWebSession.signIn(AuthenticatedWebSession.java:66) > > at > org.apache.wicket.authroles.authentication.panel.SignInPanel.signIn(SignInPanel.java:210) > > at > org.apache.wicket.authroles.authentication.panel.SignInPanel.access$100(SignInPanel.java:46) > > at > org.apache.wicket.authroles.authentication.panel.SignInPanel$SignInForm.onSubmit(SignInPanel.java:305) > > at > org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1316) > > at org.apache.wicket.markup.html.form.Form.process(Form.java:976) > > at > org.apache.wicket.markup.html.form.StatelessForm.process(StatelessForm.java:100) > > at > org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:797) > > at > org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:708) > > 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.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258) > > at > org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:216) > > at > org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:241) > > at > org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234) > > at > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:895) > > at > org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) > > at > org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265) > > at > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222) > > at > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293) > > at > org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261) > > at > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203) > > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) > > at > org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter.doFilter(IsisLogOnExceptionFilter.java:52) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) > > at > org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) > > at > org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) > > at > org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) > > at > org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) > > at > org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) > > at > org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) > > at > org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) > > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) > > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) > > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) > > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) > > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) > > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) > > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) > > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) > > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) > > at org.eclipse.jetty.server.Server.handle(Server.java:517) > > at > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) > > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) > > at > org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261) > > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) > > at > org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) > > at > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) > > at > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) > > at java.lang.Thread.run(Thread.java:748) > > Caused by: java.lang.RuntimeException: An error occurred while executing > code in a temporary session > > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:366) > > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:344) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm.execute(IsisModuleSecurityRealm.java:221) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm.lookupPrincipal(IsisModuleSecurityRealm.java:138) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm.doGetAuthenticationInfo(IsisModuleSecurityRealm.java:76) > > at > org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:568) > > at > org.apache.shiro.authc.pam.ModularRealmAuthenticator.doSingleRealmAuthentication(ModularRealmAuthenticator.java:180) > > at > org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:267) > > at > org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198) > > ... 65 more > > Caused by: java.lang.NullPointerException > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm$1.lookupUser(IsisModuleSecurityRealm.java:149) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm$1.execute(IsisModuleSecurityRealm.java:141) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm$1.execute(IsisModuleSecurityRealm.java:138) > > at > org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:188) > > at > org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:178) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm.doExecute(IsisModuleSecurityRealm.java:236) > > at > org.isisaddons.module.security.shiro.IsisModuleSecurityRealm$3.call(IsisModuleSecurityRealm.java:227) > > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:364) > > ... 73 more > > > > Could you explain what I need to do? Why do i get the error? > > What I did was the following: > > > > ################ > > Shiro.ini > > ################ > > > *[main] **isisModuleSecurityRealm*= > > *org.isisaddons.module.security.shiro.IsisModuleSecurityRealm * > *authenticationStrategy*= > *org.isisaddons.module.security.shiro.AuthenticationStrategyForIsisModuleSecurityRealm > **securityManager.authenticator.authenticationStrategy *= > > *$authenticationStrategy **securityManager.realms *= > *$isisModuleSecurityRealm* > > > > ################ > > Isis.properties > > ################ > > *isis.appManifest*= > > *domainapp.application.manifest.DomainAppAppManifest**isis.services-installer*= > *configuration-and-annotation**isis.services.ServicesInstallerFromAnnotation.packagePrefix*= > > *org.isisaddons.module.security**isis.services *= > *org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt,* > *\* > > * > org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto**isis.reflector.facets.include*= > > *org.isisaddons.module.security.facets.TenantedAuthorizationFacetFactory**isis.reflector.facet.cssClassFa.patterns*= > *\** new.*:fa-plus,* > *\** add.*:fa-plus-square,* > *\** create.*:fa-plus,* > *\** update.*:fa-edit,* > *\** remove.*:fa-minus-square,* > *\** find.*:fa-search,* > *\** all.*:fa-list* > > > > ################# > > webapp/pom.xml > > ################# > > <*dependencies*> > > *<!-- this app --> *<*dependency*> > <*groupId*>${project.groupId}</*groupId*> > <*artifactId*>Onboarding-application</*artifactId*> > </*dependency*> > > > *<!-- isis --> *<*dependency*> > <*groupId*>org.apache.isis.mavendeps</*groupId*> > <*artifactId*>isis-mavendeps-webapp</*artifactId*> > <*type*>pom</*type*> > </*dependency*> > > > *<!-- Shiro Module Security--> *<*dependency*> > <*groupId*>org.isisaddons.module.security</*groupId*> > <*artifactId*>isis-module-security-dom</*artifactId*> > <*version*>1.14.0</*version*> > </*dependency*> > <*dependency*> > <*groupId*>org.mindrot</*groupId*> > <*artifactId*>jbcrypt</*artifactId*> > <*version*>0.4</*version*> > </*dependency*> > > </*dependencies*> > > > > Thank you in advance. > > Luis Martínez >