wso2 / product-is

Welcome to the WSO2 Identity Server source code! For info on working with the WSO2 Identity Server repository and contributing code, click the link below.
http://wso2.github.io/
Apache License 2.0
741 stars 719 forks source link

Consent management query was executed four times in two request in OIDC code flow #11886

Open senthalan opened 3 years ago

senthalan commented 3 years ago

Describe the Issue: The following query was executed 4 times,

SELECT CONSENT_RECEIPT_ID, LANGUAGE, PII_PRINCIPAL_ID, PRINCIPAL_TENANT_ID, STATE, SP_DISPLAY_NAME, SP_DESCRIPTION FROM (SELECT R.CONSENT_RECEIPT_ID, R.LANGUAGE, R.PII_PRINCIPAL_ID, R.PRINCIPAL_TENANT_ID, R.STATE, RS.SP_DISPLAY_NAME, RS.SP_DESCRIPTION, ROW_NUMBER() OVER ( ORDER BY R.CONSENT_RECEIPT_ID) AS ROWNUM FROM CM_RECEIPT R INNER JOIN CM_RECEIPT_SP_ASSOC RS ON R.CONSENT_RECEIPT_ID = RS.CONSENT_RECEIPT_ID WHERE PII_PRINCIPAL_ID LIKE 'CONSUMER/istestuser_1' AND PRINCIPAL_TENANT_ID = 3 AND SP_NAME LIKE 'app_1dummyperftenant1' AND SP_TENANT_ID LIKE 3 AND STATE LIKE 'ACTIVE') AS RES WHERE RES.ROWNUM BETWEEN 1 AND 2

Called 4 times.

SELECT CONSENT_RECEIPT_ID, LANGUAGE, PII_PRINCIPAL_ID, PRINCIPAL_TENANT_ID, STATE, SP_DISPLAY_NAME, SP_DESCRIPTION FROM (SELECT R.CONSENT_RECEIPT_ID, R.LANGUAGE, R.PII_PRINCIPAL_ID, R.PRINCIPAL_TENANT_ID, R.STATE, RS.SP_DISPLAY_NAME, RS.SP_DESCRIPTION, ROW_NUMBER() OVER ( ORDER BY R.CONSENT_RECEIPT_ID) AS ROWNUM FROM CM_RECEIPT R INNER JOIN CM_RECEIPT_SP_ASSOC RS ON R.CONSENT_RECEIPT_ID = RS.CONSENT_RECEIPT_ID WHERE PII_PRINCIPAL_ID LIKE 'CONSUMER/istestuser_1' AND PRINCIPAL_TENANT_ID = 3 AND SP_NAME LIKE 'app_1dummyperftenant1' AND SP_TENANT_ID LIKE 3 AND STATE LIKE 'ACTIVE') AS RES WHERE RES.ROWNUM BETWEEN 1 AND 2
 com.sun.proxy.$Proxy54.executeQuery()
  org.wso2.carbon.database.utils.jdbc.JdbcTemplate.executeQuery(String, org.wso2.carbon.database.utils.jdbc.RowMapper, org.wso2.carbon.database.utils.jdbc.QueryFilter)
   org.wso2.carbon.consent.mgt.core.dao.impl.ReceiptDAOImpl.searchReceipt(int, int, int, org.wso2.carbon.database.utils.jdbc.JdbcTemplate, int, String, String, String)
    org.wso2.carbon.consent.mgt.core.dao.impl.ReceiptDAOImpl.searchReceipts(int, int, String, int, String, String, int)
     org.wso2.carbon.consent.mgt.core.ConsentManagerImpl.searchReceipts(int, int, String, String, String, String, String)
      org.wso2.carbon.consent.mgt.core.ConsentManagerImpl.searchReceipts(int, int, String, String, String, String)
       org.wso2.carbon.consent.mgt.core.PrivilegedConsentManagerImpl$25.execute()
        org.wso2.carbon.consent.mgt.core.PrivilegedConsentManagerImpl$25.execute()
         org.wso2.carbon.consent.mgt.core.model.ConsentInterceptorTemplate.executeWith(org.wso2.carbon.consent.mgt.core.model.OperationDelegate)
          org.wso2.carbon.consent.mgt.core.PrivilegedConsentManagerImpl.searchReceipts(int, int, String, String, String, String)
           org.wso2.carbon.consent.mgt.core.InterceptingConsentManager.searchReceipts(int, int, String, String, String, String)
            org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.consent.SSOConsentServiceImpl.getReceiptListOfUserForSP(org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, String, String, String, int)
             org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.consent.SSOConsentServiceImpl.getConsentReceiptOfUser(org.wso2.carbon.identity.application.common.model.ServiceProvider, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, String, String, String)
              org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.consent.SSOConsentServiceImpl.getConsentRequiredClaims(org.wso2.carbon.identity.application.common.model.ServiceProvider, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, boolean)
               org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.consent.SSOConsentServiceImpl.getConsentRequiredClaimsWithExistingConsents(org.wso2.carbon.identity.application.common.model.ServiceProvider, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser)
                org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.getConsentRequiredClaims(org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, org.wso2.carbon.identity.application.common.model.ServiceProvider, boolean)
                 org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.handlePreConsent(org.wso2.carbon.identity.oauth2.model.OAuth2Parameters, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, boolean)
                  org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.handlePreConsentIncludingExistingConsents(org.wso2.carbon.identity.oauth2.model.OAuth2Parameters, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser)
                   org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.promptUserForConsent(String, org.wso2.carbon.identity.oauth2.model.OAuth2Parameters, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, boolean)
                    org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.handleConsent(org.wso2.carbon.identity.oauth.endpoint.message.OAuthMessage, String, org.wso2.carbon.identity.oidc.session.OIDCSessionState, org.wso2.carbon.identity.oauth2.model.OAuth2Parameters, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, boolean)
                     org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.doUserAuthorization(org.wso2.carbon.identity.oauth.endpoint.message.OAuthMessage, String, org.wso2.carbon.identity.oidc.session.OIDCSessionState)
                      org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.handleSuccessfulAuthentication(org.wso2.carbon.identity.oauth.endpoint.message.OAuthMessage, org.wso2.carbon.identity.oauth2.model.OAuth2Parameters, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticationResult)
                       org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.handleAuthenticationResponse(org.wso2.carbon.identity.oauth.endpoint.message.OAuthMessage)
                        org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorize(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                         sun.reflect.NativeMethodAccessorImpl.invoke0[native](java.lang.reflect.Method, Object, Object[])
                          sun.reflect.NativeMethodAccessorImpl.invoke(Object, Object[])
                           sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[])
                            java.lang.reflect.Method.invoke(Object, Object[])
                             org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(org.apache.cxf.message.Exchange, Object, java.lang.reflect.Method, Object[])
                              org.apache.cxf.service.invoker.AbstractInvoker.invoke(org.apache.cxf.message.Exchange, Object, java.lang.reflect.Method, java.util.List)
                               org.apache.cxf.jaxrs.JAXRSInvoker.invoke(org.apache.cxf.message.Exchange, Object, Object)
                                org.apache.cxf.jaxrs.JAXRSInvoker.invoke(org.apache.cxf.message.Exchange, Object)
                                 org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run()
                                  org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(org.apache.cxf.message.Message)
                                   org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(org.apache.cxf.message.Message)
                                    org.apache.cxf.transport.ChainInitiationObserver.onMessage(org.apache.cxf.message.Message)
                                     org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(javax.servlet.ServletConfig, javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                      org.apache.cxf.transport.servlet.ServletController.invokeDestination(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.cxf.transport.http.AbstractHTTPDestination)
                                       org.apache.cxf.transport.servlet.ServletController.invoke(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean)
                                        org.apache.cxf.transport.servlet.ServletController.invoke(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                         org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                          org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                           org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                            javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                             org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                              org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                               org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                                org.apache.tomcat.websocket.server.WsFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
                                                 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                                  org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                                   org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher.State)
                                                    org.apache.catalina.core.ApplicationDispatcher.processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher.State)
                                                     org.apache.catalina.core.ApplicationDispatcher.doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                                      org.apache.catalina.core.ApplicationDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                                       org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                        org.wso2.carbon.tomcat.ext.valves.SameSiteCookieValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                         org.wso2.carbon.identity.cors.valve.CORSValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                          org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                           org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                            org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                             org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response, org.wso2.carbon.tomcat.ext.valves.CompositeValve)
                                                              org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                               org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                                org.apache.catalina.valves.AbstractAccessLogValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                                 org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                                  org.wso2.carbon.tomcat.ext.valves.RequestEncodingValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                                   org.wso2.carbon.tomcat.ext.valves.RequestCorrelationIdValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                                    org.apache.catalina.core.StandardEngineValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                                     org.apache.catalina.connector.CoyoteAdapter.service(org.apache.coyote.Request, org.apache.coyote.Response)
                                                                      org.apache.coyote.http11.Http11Processor.service(org.apache.tomcat.util.net.SocketWrapperBase)
                                                                       org.apache.coyote.AbstractProcessorLight.process(org.apache.tomcat.util.net.SocketWrapperBase, org.apache.tomcat.util.net.SocketEvent)
                                                                        org.apache.coyote.AbstractProtocol$ConnectionHandler.process(org.apache.tomcat.util.net.SocketWrapperBase, org.apache.tomcat.util.net.SocketEvent)
                                                                         org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun()
                                                                          org.apache.tomcat.util.net.SocketProcessorBase.run()
                                                                           java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor.Worker)
                                                                            java.util.concurrent.ThreadPoolExecutor$Worker.run()
                                                                             org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()
                                                                              java.lang.Thread.run()
                org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.getConsentRequiredClaims(org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, org.wso2.carbon.identity.application.common.model.ServiceProvider, org.wso2.carbon.identity.oauth2.model.OAuth2Parameters)
                 org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.handlePostConsent(org.wso2.carbon.identity.oauth.endpoint.message.OAuthMessage)
                  org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.handleResponseFromConsent(org.wso2.carbon.identity.oauth.endpoint.message.OAuthMessage)
                   org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorize(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                    org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorizePost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.ws.rs.core.MultivaluedMap)
                     sun.reflect.NativeMethodAccessorImpl.invoke0[native](java.lang.reflect.Method, Object, Object[])
                      sun.reflect.NativeMethodAccessorImpl.invoke(Object, Object[])
                       sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[])
                        java.lang.reflect.Method.invoke(Object, Object[])
                         org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(org.apache.cxf.message.Exchange, Object, java.lang.reflect.Method, Object[])
                          org.apache.cxf.service.invoker.AbstractInvoker.invoke(org.apache.cxf.message.Exchange, Object, java.lang.reflect.Method, java.util.List)
                           org.apache.cxf.jaxrs.JAXRSInvoker.invoke(org.apache.cxf.message.Exchange, Object, Object)
                            org.apache.cxf.jaxrs.JAXRSInvoker.invoke(org.apache.cxf.message.Exchange, Object)
                             org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run()
                              org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(org.apache.cxf.message.Message)
                               org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(org.apache.cxf.message.Message)
                                org.apache.cxf.transport.ChainInitiationObserver.onMessage(org.apache.cxf.message.Message)
                                 org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(javax.servlet.ServletConfig, javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                  org.apache.cxf.transport.servlet.ServletController.invokeDestination(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.cxf.transport.http.AbstractHTTPDestination)
                                   org.apache.cxf.transport.servlet.ServletController.invoke(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean)
                                    org.apache.cxf.transport.servlet.ServletController.invoke(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                     org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                      org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                       org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                        javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                         org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                           org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                            org.apache.tomcat.websocket.server.WsFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
                                             org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                              org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                               org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher.State)
                                                org.apache.catalina.core.ApplicationDispatcher.processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher.State)
                                                 org.apache.catalina.core.ApplicationDispatcher.doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                                  org.apache.catalina.core.ApplicationDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                                   org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                    org.wso2.carbon.tomcat.ext.valves.SameSiteCookieValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                     org.wso2.carbon.identity.cors.valve.CORSValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                      org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                       org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                        org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                         org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response, org.wso2.carbon.tomcat.ext.valves.CompositeValve)
                                                          org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                           org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                            org.apache.catalina.valves.AbstractAccessLogValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                             org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                              org.wso2.carbon.tomcat.ext.valves.RequestEncodingValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                               org.wso2.carbon.tomcat.ext.valves.RequestCorrelationIdValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                                org.apache.catalina.core.StandardEngineValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                                 org.apache.catalina.connector.CoyoteAdapter.service(org.apache.coyote.Request, org.apache.coyote.Response)
                                                                  org.apache.coyote.http11.Http11Processor.service(org.apache.tomcat.util.net.SocketWrapperBase)
                                                                   org.apache.coyote.AbstractProcessorLight.process(org.apache.tomcat.util.net.SocketWrapperBase, org.apache.tomcat.util.net.SocketEvent)
                                                                    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(org.apache.tomcat.util.net.SocketWrapperBase, org.apache.tomcat.util.net.SocketEvent)
                                                                     org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun()
                                                                      org.apache.tomcat.util.net.SocketProcessorBase.run()
                                                                       java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor.Worker)
                                                                        java.util.concurrent.ThreadPoolExecutor$Worker.run()
                                                                         org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()
                                                                          java.lang.Thread.run()
              org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.consent.SSOConsentServiceImpl.getUserRequestedClaims(org.wso2.carbon.identity.application.common.model.ServiceProvider, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.consent.UserConsent, boolean)
               org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.consent.SSOConsentServiceImpl.processConsent(java.util.List, org.wso2.carbon.identity.application.common.model.ServiceProvider, org.wso2.carbon.identity.application.authentication.framework.model.AuthenticatedUser, org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.consent.ConsentClaimsData, boolean)
                org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.handlePostConsent(org.wso2.carbon.identity.oauth.endpoint.message.OAuthMessage)
                 org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.handleResponseFromConsent(org.wso2.carbon.identity.oauth.endpoint.message.OAuthMessage)
                  org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorize(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                   org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorizePost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.ws.rs.core.MultivaluedMap)
                    sun.reflect.NativeMethodAccessorImpl.invoke0[native](java.lang.reflect.Method, Object, Object[])
                     sun.reflect.NativeMethodAccessorImpl.invoke(Object, Object[])
                      sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[])
                       java.lang.reflect.Method.invoke(Object, Object[])
                        org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(org.apache.cxf.message.Exchange, Object, java.lang.reflect.Method, Object[])
                         org.apache.cxf.service.invoker.AbstractInvoker.invoke(org.apache.cxf.message.Exchange, Object, java.lang.reflect.Method, java.util.List)
                          org.apache.cxf.jaxrs.JAXRSInvoker.invoke(org.apache.cxf.message.Exchange, Object, Object)
                           org.apache.cxf.jaxrs.JAXRSInvoker.invoke(org.apache.cxf.message.Exchange, Object)
                            org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run()
                             org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(org.apache.cxf.message.Message)
                              org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(org.apache.cxf.message.Message)
                               org.apache.cxf.transport.ChainInitiationObserver.onMessage(org.apache.cxf.message.Message)
                                org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(javax.servlet.ServletConfig, javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                 org.apache.cxf.transport.servlet.ServletController.invokeDestination(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.cxf.transport.http.AbstractHTTPDestination)
                                  org.apache.cxf.transport.servlet.ServletController.invoke(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean)
                                   org.apache.cxf.transport.servlet.ServletController.invoke(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                     org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                      org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                       javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
                                        org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                          org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                           org.apache.tomcat.websocket.server.WsFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
                                            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                             org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                              org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher.State)
                                               org.apache.catalina.core.ApplicationDispatcher.processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher.State)
                                                org.apache.catalina.core.ApplicationDispatcher.doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                                 org.apache.catalina.core.ApplicationDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
                                                  org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                   org.wso2.carbon.tomcat.ext.valves.SameSiteCookieValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                    org.wso2.carbon.identity.cors.valve.CORSValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                     org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                      org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                       org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                        org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response, org.wso2.carbon.tomcat.ext.valves.CompositeValve)
                                                         org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                          org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                           org.apache.catalina.valves.AbstractAccessLogValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                            org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                             org.wso2.carbon.tomcat.ext.valves.RequestEncodingValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                              org.wso2.carbon.tomcat.ext.valves.RequestCorrelationIdValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                               org.apache.catalina.core.StandardEngineValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)
                                                                org.apache.catalina.connector.CoyoteAdapter.service(org.apache.coyote.Request, org.apache.coyote.Response)
                                                                 org.apache.coyote.http11.Http11Processor.service(org.apache.tomcat.util.net.SocketWrapperBase)
                                                                  org.apache.coyote.AbstractProcessorLight.process(org.apache.tomcat.util.net.SocketWrapperBase, org.apache.tomcat.util.net.SocketEvent)
                                                                   org.apache.coyote.AbstractProtocol$ConnectionHandler.process(org.apache.tomcat.util.net.SocketWrapperBase, org.apache.tomcat.util.net.SocketEvent)
                                                                    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun()
                                                                     org.apache.tomcat.util.net.SocketProcessorBase.run()
                                                                      java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor.Worker)
                                                                       java.util.concurrent.ThreadPoolExecutor$Worker.run()
                                                                        org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()
                                                                         java.lang.Thread.run()
senthalan commented 3 years ago

https://github.com/wso2/carbon-identity-framework/pull/3555 fix will skip the query execution when there is no claim mapping configured for the SP. If the claim mapping is available for the SP, we need to add cache to consent management layer to solve this.