Uploaded image for project: 'OpenAM'
  1. OpenAM
  2. OPENAM-15783

org.forgerock.openam.idm.attribute.names.lower.case side affect

    Details

    • Type: Bug
    • Status: Open
    • Priority: Critical
    • Resolution: Unresolved
    • Affects Version/s: 6.0.0.7
    • Fix Version/s: None
    • Component/s: console, rest
    • Labels:
    • Support Ticket IDs:

      Description

      Bug description

      When  org.forgerock.openam.idm.attribute.names.lower.case = true, the user's profile first name is missing:

      In some cases, the following error shows up in Coresystem:

      rRest:12/05/2019 12:03:29:441 PM MST: Thread[https-jsse-nio-30022-exec-3,5,main]: TransactionId[38ec354a-0e2d-4bba-b131-b5552a9a26fe-637]rRest:12/05/2019 12:03:29:441 PM MST: Thread[https-jsse-nio-30022-exec-3,5,main]: TransactionId[38ec354a-0e2d-4bba-b131-b5552a9a26fe-637]ERROR: A runtime exception occurred during the CREST request handlingjava.lang.IllegalStateException: Exception from invocation expected to be handled by promise at org.forgerock.json.resource.AnnotatedMethod.invoke(AnnotatedMethod.java:100) at org.forgerock.json.resource.AnnotatedMethod.invoke(AnnotatedMethod.java:65) at org.forgerock.json.resource.AnnotationCollectionInstance.handleRead(AnnotationCollectionInstance.java:51) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:105) at org.forgerock.json.resource.Resources$CollectionInstanceIdContextFilter.filterRead(Resources.java:520) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:103) at org.forgerock.json.resource.FilterChain.handleRead(FilterChain.java:252) at org.forgerock.json.resource.Router.handleRead(Router.java:330) at org.forgerock.openam.core.rest.sms.tree.DescribedGeneralActionsHandler.handleRead(DescribedGeneralActionsHandler.java:87) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:105) at org.forgerock.authz.filter.crest.AuthorizationFilters$AuthorizationFilter.lambda$filterRead$5(AuthorizationFilters.java:350) at org.forgerock.util.promise.Promises$CompletedPromise.thenAsync(Promises.java:252) at org.forgerock.util.promise.Promises$CompletedPromise.thenAsync(Promises.java:216) at org.forgerock.authz.filter.crest.AuthorizationFilters$AuthorizationFilter.filterRead(AuthorizationFilters.java:348) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:103) at org.forgerock.json.resource.FilterChain.handleRead(FilterChain.java:252) at org.forgerock.json.resource.Router.handleRead(Router.java:330) at org.forgerock.openam.core.rest.sms.tree.SmsRouteTree.handleRead(SmsRouteTree.java:437) at org.forgerock.json.resource.Router.handleRead(Router.java:330) at org.forgerock.openam.core.rest.sms.tree.SmsRouteTree.handleRead(SmsRouteTree.java:437) at org.forgerock.json.resource.Router.handleRead(Router.java:330) at org.forgerock.openam.core.rest.sms.tree.SmsRouteTree.handleRead(SmsRouteTree.java:437) at org.forgerock.openam.core.rest.sms.SmsRequestHandler.handleRead(SmsRequestHandler.java:961) at org.forgerock.json.resource.Router.handleRead(Router.java:330) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:105) at org.forgerock.authz.filter.crest.AuthorizationFilters$AuthorizationFilter.lambda$filterRead$5(AuthorizationFilters.java:350) at org.forgerock.util.promise.Promises$CompletedPromise.thenAsync(Promises.java:252) at org.forgerock.util.promise.Promises$CompletedPromise.thenAsync(Promises.java:216) at org.forgerock.authz.filter.crest.AuthorizationFilters$AuthorizationFilter.filterRead(AuthorizationFilters.java:348) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:103) at org.forgerock.json.resource.FilterChain.handleRead(FilterChain.java:252) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:105) at org.forgerock.openam.rest.fluent.AuditFilter.filterRead(AuditFilter.java:187) at org.forgerock.openam.rest.fluent.AuditFilterWrapper.filterRead(AuditFilterWrapper.java:82) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:103) at org.forgerock.openam.rest.fluent.CrestLoggingFilter.filterRead(CrestLoggingFilter.java:158) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:103) at org.forgerock.openam.rest.ContextFilter.filterRead(ContextFilter.java:79) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:103) at org.forgerock.openam.rest.AuthenticationEnforcer.filterRead(AuthenticationEnforcer.java:174) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:103) at org.forgerock.json.resource.FilterChain.handleRead(FilterChain.java:252) at org.forgerock.json.resource.Router.handleRead(Router.java:330) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:105) at org.forgerock.openam.rest.ContextFilter.filterRead(ContextFilter.java:79) at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:103) at org.forgerock.json.resource.FilterChain.handleRead(FilterChain.java:252) at org.forgerock.json.resource.InternalConnection.readAsync(InternalConnection.java:81) at org.forgerock.json.resource.http.RequestRunner.visitReadRequest(RequestRunner.java:279) at org.forgerock.json.resource.http.RequestRunner.visitReadRequest(RequestRunner.java:82) at org.forgerock.json.resource.Requests$ReadRequestImpl.accept(Requests.java:587) at org.forgerock.json.resource.http.RequestRunner.handleResult(RequestRunner.java:128) at org.forgerock.util.promise.Promises$CompletedPromise.thenAsync(Promises.java:252) at org.forgerock.util.promise.Promises$CompletedPromise.thenAsync(Promises.java:241) at org.forgerock.json.resource.http.HttpAdapter.doRequest(HttpAdapter.java:711) at org.forgerock.json.resource.http.HttpAdapter.doRead(HttpAdapter.java:368) at org.forgerock.json.resource.http.HttpAdapter.handle(HttpAdapter.java:273) at org.forgerock.http.handler.Handlers$HandlerDescribableAsDescribableHandler.handle(Handlers.java:146) at org.forgerock.http.filter.OptionsFilter.filter(OptionsFilter.java:69) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.http.routing.Router.handle(Router.java:100) at org.forgerock.openam.rest.RealmContextFilter.filter(RealmContextFilter.java:80) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.http.routing.Router.handle(Router.java:100) at org.forgerock.http.routing.Router.handle(Router.java:100) at org.forgerock.openam.rest.RealmRoutingFactory$ChfRealmRouter.handle(RealmRoutingFactory.java:140) at org.forgerock.http.handler.Handlers$UndescribedAsDescribableHandler.handle(Handlers.java:179) at org.forgerock.openam.rest.RealmRoutingFactory$HostnameFilter.filter(RealmRoutingFactory.java:117) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.http.routing.Router.handle(Router.java:100) at org.forgerock.http.routing.Router.handle(Router.java:100) at org.forgerock.openam.rest.CsrfFilter.filter(CsrfFilter.java:91) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.http.routing.ResourceApiVersionRoutingFilter.filter(ResourceApiVersionRoutingFilter.java:59) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.caf.authentication.framework.AuthenticationFramework.grantAccess(AuthenticationFramework.java:188) at org.forgerock.caf.authentication.framework.AuthenticationFramework.lambda$onValidateRequestSuccess$1(AuthenticationFramework.java:181) at org.forgerock.util.promise.Promises$CompletedPromise.thenAsync(Promises.java:252) at org.forgerock.util.promise.Promises$CompletedPromise.thenAsync(Promises.java:241) at org.forgerock.caf.authentication.framework.AuthenticationFramework.validateRequest(AuthenticationFramework.java:144) at org.forgerock.caf.authentication.framework.AuthenticationFramework.processMessage(AuthenticationFramework.java:134) at org.forgerock.caf.authentication.framework.AuthenticationFilter.filter(AuthenticationFilter.java:84) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.openam.http.GuiceHandler.handle(GuiceHandler.java:51) at org.forgerock.openam.http.HttpRoute$6.handle(HttpRoute.java:206) at org.forgerock.http.routing.Router.handle(Router.java:100) at org.forgerock.openam.dpro.session.ProofOfPossessionTokenFilter.filter(ProofOfPossessionTokenFilter.java:88) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.http.swagger.OpenApiRequestFilter.filter(OpenApiRequestFilter.java:63) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.openam.http.ApiDescriptorFilter.filter(ApiDescriptorFilter.java:139) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.openam.http.OpenAMHttpApplication$1.filter(OpenAMHttpApplication.java:74) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.http.filter.TransactionIdInboundFilter.filter(TransactionIdInboundFilter.java:75) at org.forgerock.http.handler.Handlers$1.handle(Handlers.java:53) at org.forgerock.http.servlet.HttpFrameworkServlet.service(HttpFrameworkServlet.java:254) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.forgerock.openam.rest.ProtocolVersionFilter.doFilter(ProtocolVersionFilter.java:65) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.forgerock.openam.validation.ResponseValidationFilter.doFilter(ResponseValidationFilter.java:59) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.forgerock.openam.headers.SetHeadersFilter.doFilter(SetHeadersFilter.java:80) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:115) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.forgerock.openam.audit.context.AuditContextFilter.doFilter(AuditContextFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.reflect.InvocationTargetException 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.forgerock.json.resource.AnnotatedMethod.invoke(AnnotatedMethod.java:96) ... 134 moreCaused by: java.lang.NullPointerException at org.forgerock.openam.core.sms.SmsJsonConverter.toJson(SmsJsonConverter.java:227) at org.forgerock.openam.core.rest.sms.SmsAgentsResource.createJsonFromMappedAttributes(SmsAgentsResource.java:199) at org.forgerock.openam.core.rest.sms.SmsAbstractAgentProvider.readInstance(SmsAbstractAgentProvider.java:241) at org.forgerock.openam.core.rest.sms.SmsAgentsResource.readInstance(SmsAgentsResource.java:111) ... 139 more
      
      
      
      

      When  org.forgerock.openam.idm.attribute.names.lower.case = false, the user's profile first name shows

      How to reproduce the issue

      This issue does not appear in AM 6.5

      Details steps outlining how to recreate the issue (remove this text)

      1. Enable configure->server defaults-Advanced->  org.forgerock.openam.idm.attribute.names.lower.case = true
      2. Recycle Tomcat AM container
      3. Review a user's profile, you will see the the first name is missing
      4. Review the CoreSystem logs, and you may see the error above
      Expected behaviour
      Current behaviour
      {...}
      

      Work around

      When  org.forgerock.openam.idm.attribute.names.lower.case = false, the user's profile first name shows

       

      Code analysis

      OPTIONAL - If you already investigated the code, please share your finding here (remove this text)

      org.forgerock.$className.java
      ...

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                jobby.thomas Jobby Thomas
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated: