On Tue, Sep 5, 2017 at 12:52 PM, <[email protected]> wrote: > Hi Farasath, > > > > Thank you very much for your response. Advance sorry if this takes some > time to read, > > I customizing the password grant type authentication which will call a my > rest api to do authentication of users stored in our database server, *I > cannot plug in it as a JDBC user store to wso2*. I just have to take > username, password and tenant Id during authentication. My backend api > expect tenantId for every request. Please see the details below of my > requirements >
By tenantId do you mean the tenantDomain of the authenticating user or the app? Can we assume these two (ie. App tenant Domain and User tenant domain) will always be the same > > My API is also multi tenanted and it expects tenantId for every request. > > I use below url to obtain token. > > http://locahost:8280/token > > postbody -> grant_type=password&[email protected]&password=dummy > > basicAuth -> clientId:clientsecret base64 encoded. > > > > I have to use [email protected]@tenantdomain as username to get token > because then only I can authenticate with my custom authentication > mechanism. > > > > To obtain tenantId I am appending tenant domain name to username but I > should avaoid this and use simply gmail username. I cannot use any user > store that wso2 supports. > > I am using below code to extract tenantId from domain name which will > extracted from username. > > > > Here -> username = [email protected]@tenantdomain.com > > > > String username = oAuth2AccessTokenReqDTO.getResourceOwnerUsername(); > > String userTenantDomain = MultitenantUtils.*getTenantDomain*( > username); > > *int* tenantId = IdentityTenantUtil.*getTenantId*(userTenantDomain > ); > > String tenantAwareUserName = MultitenantUtils. > *getTenantAwareUsername*(username); > > > > Please suggest if it’s possible to get tenantId without giving anything in > username. > > > > Thank You, > > Shiva Kumar K R. > > > > *From:* Farasath Ahamed [mailto:[email protected]] > *Sent:* 05 September 2017 12:13 > *To:* [email protected] > *Cc:* WSO2 Developers' List <[email protected]> > *Subject:* Re: [Dev] how to obtain tenant domain from just clientid and > client secret. > > > > > > > Farasath Ahamed > > Software Engineer, WSO2 Inc.; http://wso2.com > > Mobile: +94777603866 > > Blog: blog.farazath.com > > Twitter: @farazath619 <https://twitter.com/farazath619> > > <http://wso2.com/signature> > > > > > > > > On Mon, Sep 4, 2017 at 7:30 PM, <[email protected]> wrote: > > Hi, > > I am using WSO2 api manager 2.1.0, and I am extending password grant type > handler to customize few operations > > I tried to obtain tenant domain from OAuthAppDO from I got the below > exception please help me. > > > > Here what is the tenantDomain you are trying obtain? > > Tenant domain to which the app belongs to or the tenant domain of the > authenticated user? > > > > If it is Tenant domain to which the app belongs to, you can use util > method[1] > > > > [1] https://github.com/wso2-extensions/identity-inbound-auth > -oauth/blob/master/components/org.wso2.carbon.identity. > oauth/src/main/java/org/wso2/carbon/identity/oauth2/util/ > OAuth2Util.java#L1290-L1316 > > > > > > This is utility method I trying to get OauthAppDO from which I get > AuthenticatedUser object and it’s tenantdomain. But it’s throwing exception. > > > > String tenantDomain = OAuthUtil.getAppInformationByC > lientId(oAuth2AccessTokenReqDTO.getClientId()).getUser().get > TenantDomain(); > > > > ... 47 more > > [2017-09-04 18:55:59,723] ERROR - StandardWrapperValve Servlet.service() > for servlet [OAuth2Endpoints] in context with path [/oauth2] threw exception > > java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: > org.wso2.carbon.identity.oauth.OAuthUtil.getAppInformationBy > ClientId(Ljava/lang/String;)Lorg/wso2/carbon/identity/ > oauth/dao/OAuthAppDO; > > at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserv > er.onMessage(AbstractFaultChainInitiatorObserver.java:116) > > at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(Phase > InterceptorChain.java:336) > > at org.apache.cxf.transport.ChainInitiationObserver.onMessage(C > hainInitiationObserver.java:121) > > at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke > (AbstractHTTPDestination.java:249) > > at org.apache.cxf.transport.servlet.ServletController.invokeDes > tination(ServletController.java:248) > > at org.apache.cxf.transport.servlet.ServletController.invoke( > ServletController.java:222) > > at org.apache.cxf.transport.servlet.ServletController.invoke( > ServletController.java:153) > > at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke( > CXFNonSpringServlet.java:171) > > at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleR > equest(AbstractHTTPServlet.java:289) > > at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost( > AbstractHTTPServlet.java:209) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) > > at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service > (AbstractHTTPServlet.java:265) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFi > lter(ApplicationFilterChain.java:303) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter(App > licationFilterChain.java:208) > > at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte > r.java:52) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFi > lter(ApplicationFilterChain.java:241) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter(App > licationFilterChain.java:208) > > at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilte > r(HttpHeaderSecurityFilter.java:120) > > at org.apache.catalina.core.ApplicationFilterChain.internalDoFi > lter(ApplicationFilterChain.java:241) > > at org.apache.catalina.core.ApplicationFilterChain.doFilter(App > licationFilterChain.java:208) > > at org.apache.catalina.core.StandardWrapperValve.invoke(Standar > dWrapperValve.java:218) > > at org.apache.catalina.core.StandardContextValve.invoke(Standar > dContextValve.java:122) > > at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A > uthenticatorBase.java:505) > > at org.apache.catalina.core.StandardHostValve.invoke(StandardHo > stValve.java:169) > > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo > rtValve.java:103) > > at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInv > ocation(CompositeValve.java:99) > > at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke > (CarbonTomcatValve.java:47) > > at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(Tena > ntLazyLoaderValve.java:57) > > at org.wso2.carbon.event.receiver.core.internal.tenantmgt.Tenan > tLazyLoaderValve.invoke(TenantLazyLoaderValve.java:48) > > at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invok > eValves(TomcatValveContainer.java:47) > > at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(Comp > ositeValve.java:62) > > at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetection > Valve.invoke(CarbonStuckThreadDetectionValve.java:159) > > at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVa > lve.java:958) > > at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve. > invoke(CarbonContextCreatorValve.java:57) > > at org.apache.catalina.core.StandardEngineValve.invoke(Standard > EngineValve.java:116) > > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd > apter.java:452) > > at org.apache.coyote.http11.AbstractHttp11Processor.process(Abs > tractHttp11Processor.java:1087) > > at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler > .process(AbstractProtocol.java:637) > > at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun > (NioEndpoint.java:1756) > > at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run( > NioEndpoint.java:1715) > > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool > Executor.java:1149) > > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo > lExecutor.java:624) > > at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable. > run(TaskThread.java:61) > > at java.lang.Thread.run(Thread.java:748) > > Caused by: org.apache.cxf.interceptor.Fault: > org.wso2.carbon.identity.oauth.OAuthUtil.getAppInformationBy > ClientId(Ljava/lang/String;)Lorg/wso2/carbon/identity/ > oauth/dao/OAuthAppDO; > > at org.apache.cxf.service.invoker.AbstractInvoker.createFault( > AbstractInvoker.java:170) > > at org.apache.cxf.service.invoker.AbstractInvoker.invoke( > AbstractInvoker.java:136) > > at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:204) > > at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:101) > > at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run( > ServiceInvokerInterceptor.java:58) > > at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleM > essage(ServiceInvokerInterceptor.java:94) > > at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(Phase > InterceptorChain.java:272) > > ... 42 more > > Caused by: java.lang.NoSuchMethodError: org.wso2.carbon.identity.oauth > .OAuthUtil.getAppInformationByClientId(Ljava/lang/String;) > Lorg/wso2/carbon/identity/oauth/dao/OAuthAppDO; > > at org.wso2.carbon.test.SSPasswordAuthHandler.validateGrant(SSP > asswordAuthHandler.java:37) > > at org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer. > issue(AccessTokenIssuer.java:212) > > at org.wso2.carbon.identity.oauth2.OAuth2Service.issueAccessTok > en(OAuth2Service.java:223) > > at org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEnd > point.getAccessToken(OAuth2TokenEndpoint.java:287) > > at org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEnd > point.issueAccessToken(OAuth2TokenEndpoint.java:151) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce > ssorImpl.java:62) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe > thodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:498) > > at org.apache.cxf.service.invoker.AbstractInvoker.performInvoca > tion(AbstractInvoker.java:188) > > at org.apache.cxf.service.invoker.AbstractInvoker.invoke( > AbstractInvoker.java:104) > > ... 47 more > > > _______________________________________________ > Dev mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > > >
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
