[MAGNOLIA-2047] NoSuchElementException in MgnlUserManager Created: 06/Feb/08  Updated: 23/Jan/13  Resolved: 03/Sep/08

Status: Closed
Project: Magnolia
Component/s: security
Affects Version/s: 3.5.3
Fix Version/s: 3.6.2, 3.6.3

Type: Bug Priority: Blocker
Reporter: Sameer Charles Assignee: Jan Haderka
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

This happens if

  • you have JCR authentication module set to optional
  • user does not exist in magnolia.
    We are building external login modules to authenticate/authorise to custom data sources.

Exception on login,

16:25:51,990 ERROR [[default]] Servlet.service() for servlet default threw exception
java.util.NoSuchElementException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:790)
at java.util.HashMap$KeyIterator.next(HashMap.java:823)
at info.magnolia.cms.security.MgnlUserManager.getUser(MgnlUserManager.java:114)
at info.magnolia.cms.security.DelegatingUserManager$5.delegate(DelegatingUserManager.java:96)
at info.magnolia.cms.security.DelegatingUserManager.delegateUntilNotNull(DelegatingUserManager.java:130)
at info.magnolia.cms.security.DelegatingUserManager.getUser(DelegatingUserManager.java:94)
at info.magnolia.cms.security.SecuritySupportBase.authenticate(SecuritySupportBase.java:66)
at info.magnolia.cms.security.auth.login.LoginHandlerBase.authenticate(LoginHandlerBase.java:47)
at info.magnolia.cms.security.auth.login.FormLogin.handle(FormLogin.java:74)
at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:65)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:55)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:73)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:65)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73)
at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:72)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:98)
at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:195)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:613)



 Comments   
Comment by Jan Haderka [ 03/Sep/08 ]

exception is caused by the fact that user name is not present in PrincipalSet. We will treat this same way as when Subject is not present, so from Magnolia point of view this is not authenticated user. You can use such setup to authenticate to different systems, but to authenticate to Magnolia you need to provide valid user name.

Generated at Mon Feb 12 03:32:53 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.