There is an another signature of setTenantDomain method like setTenantDomain(String tenantDomain, boolean resolveTenantID). I think if you use this it will resolve tenantId by itself.
Thanks & Regards Danushka Fernando Software Engineer WSO2 inc. http://wso2.com/ Mobile : +94716332729 On Wed, Jul 23, 2014 at 6:17 AM, Kasun Gajasinghe <kas...@wso2.com> wrote: > > > > On Tue, Jul 22, 2014 at 5:14 PM, Dilini Muthumala <dil...@wso2.com> wrote: > >> Hi Kasun, >> >> Thanks a lot for pointing that out. >> >> So, this is the current implementation. >> >> private static PrivilegedCarbonContext carbonContext; >> >> @OnOpen >> public void onOpen (Session session, @PathParam("topic") String >> topic, @PathParam("tdomain") String tdomain) { >> carbonContext = >> PrivilegedCarbonContext.getThreadLocalCarbonContext(); >> carbonContext.setTenantDomain(tdomain); >> } >> >> @OnMessage >> public void onMessage (Session session, String message, >> @PathParam("topic") String topic, @PathParam("tdomain") String tdomain) { >> String tdomain = carbonContext.getTenantDomain(); >> websocketInputService.invokeListener(tdomain, topic, message); >> } >> >> Unless we authenticate clients at onOpen method, >> > > > >> this implementation too is unsecured, right? >> >> > Yes. We shouldn't pass the tenant id as a method parameter. > > >> Thanks, >> Dilini >> >> >> On Wed, Jul 23, 2014 at 5:08 AM, Kasun Gajasinghe <kas...@wso2.com> >> wrote: >> >>> >>> >>> >>> On Tue, Jul 22, 2014 at 4:30 PM, Dilini Muthumala <dil...@wso2.com> >>> wrote: >>> >>>> Hi Sagara, >>>> >>>> Thanks a lot for the informative reply. >>>> >>>> On Tue, Jul 22, 2014 at 8:22 PM, Sagara Gunathunga <sag...@wso2.com> >>>> wrote: >>>> >>>>> As we discussed offline you need to modify onOpen() method to >>>>> receive tenant id from an initial handshake request, then within the >>>>> onOpen >>>>> method you have to write logic similar to >>>>> CarbonContextCreatorValve#initCarbonContext() >>>>> method. >>>>> >>>> >>>> Alternatively, how about reading the tenant domain from the path >>>> parameter (i.e. without using PrivilegedCarbonContext), as shown below? >>>> >>>> @OnOpen >>>> public void onOpen (Session session, @PathParam("topic") String >>>> topic, @PathParam("tdomain") String tdomain) { >>>> } >>>> >>>> @OnMessage >>>> public void onMessage (Session session, String message, >>>> @PathParam("topic") String topic, @PathParam("tdomain") String tdomain) >>>> { >>>> websocketInputService.invokeListener(tdomain, topic, message); >>>> } >>>> >>>> >>> -1. This would create a security loop hole. >>> >>> If your webapp needs to work across all the tenants, then you might need >>> to make it a SaaS app. This would be pretty much similar to API publisher. >>> >>> >>> >>>> Thanks, >>>> Dilini >>>> >>>>> >>>>> >>>>> Thanks ! >>>>> >>>>> On Tue, Jul 22, 2014 at 7:18 PM, Dilini Muthumala <dil...@wso2.com> >>>>> wrote: >>>>> >>>>>> FYI, this is the end point trying to get the tenant id: >>>>>> >>>>>> import javax.websocket.*; >>>>>> import org.wso2.carbon.context.PrivilegedCarbonContext; >>>>>> import >>>>>> org.wso2.carbon.event.input.adaptor.websocket.WebsocketInputService; >>>>>> >>>>>> @ServerEndpoint(value = "/{topic}") >>>>>> public class DataReceivingEndpoint { >>>>>> >>>>>> private static WebsocketInputService websocketInputService; >>>>>> private static int tenantId; >>>>>> >>>>>> public DataReceivingEndpoint() { >>>>>> websocketInputService = (WebsocketInputService) >>>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext() >>>>>> .getOSGiService(WebsocketInputService.class); >>>>>> } >>>>>> >>>>>> @OnOpen >>>>>> public void onOpen (Session session, @PathParam("topic") String >>>>>> topic) { >>>>>> } >>>>>> >>>>>> @OnMessage >>>>>> public void onMessage (Session session, String message, >>>>>> @PathParam("topic") String topic) { >>>>>> tenantId = >>>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); // >>>>>> returned -1 >>>>>> websocketInputService.invokeListener(tenantId, topic, >>>>>> message); >>>>>> } >>>>>> >>>>>> @OnClose >>>>>> public void onClose (Session session, CloseReason reason) { >>>>>> } >>>>>> >>>>>> @OnError >>>>>> public void onError (Session session) { >>>>>> } >>>>>> } >>>>>> >>>>>> >>>>>> On Tue, Jul 22, 2014 at 5:58 PM, Dilini Muthumala <dil...@wso2.com> >>>>>> wrote: >>>>>> >>>>>>> Hi all, >>>>>>> >>>>>>> Had an offline discussion with Sameera, Sagara and Chamil regarding >>>>>>> this. >>>>>>> >>>>>>> The most important piece of info is missing in my initial mail, >>>>>>> which is, this web app contains a web-socket end point. >>>>>>> >>>>>>> That must be the reason why all these usual methods are not working. >>>>>>> >>>>>>> Thanks, >>>>>>> Dilini >>>>>>> >>>>>>> >>>>>>> On Tue, Jul 22, 2014 at 5:45 PM, Kasun Gajasinghe <kas...@wso2.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Dilini, >>>>>>>> >>>>>>>> What's the product you are trying this in? Can you open up >>>>>>>> CARBON_HOME/repository/conf/tomcat/catalina-server.xml, and make sure >>>>>>>> that >>>>>>>> it has the following valve defined? >>>>>>>> >>>>>>>> <Valve >>>>>>>> className="org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve"/> >>>>>>>> >>>>>>>> The reported jira that is mentioned above is an issue with logging. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Jul 22, 2014 at 4:58 AM, Asanka Dissanayake < >>>>>>>> asan...@wso2.com> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Tue, Jul 22, 2014 at 5:23 PM, Asanka Dissanayake < >>>>>>>>> asan...@wso2.com> wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Jul 22, 2014 at 5:03 PM, Gayashan Amarasinghe < >>>>>>>>>> gayas...@wso2.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Dilini, >>>>>>>>>>> >>>>>>>>>>> Did you deploy the web app as super tenant or a tenant? What are >>>>>>>>>>> the server versions you used? >>>>>>>>>>> >>>>>>>>>>> Method you have used is the proper way to access the tenant Id. >>>>>>>>>>> >>>>>>>>>> AFAIK you shouldn't use PrivilegedCarbonContext to read >>>>>>>>>> information. It is used to write stuffs to the carbon context. >>>>>>>>>> >>>>>>>>> For more information: >>>>>>>>> >>>>>>>>> PrivilegedCarbonContext >>>>>>>>> >>>>>>>>> PrivilegedCarbonContext is a special subclass of CarbonContext, >>>>>>>>> which allows you to perform privileged operations such as, setting the >>>>>>>>> tenant ID and domain, starting or ending tenant flows and more. This >>>>>>>>> class >>>>>>>>> can only be used by Carbon components that have the permission to get >>>>>>>>> hold >>>>>>>>> of an instance of the PrivilegedCarbonContext. >>>>>>>>> >>>>>>>>> >>>>>>>>> CarbonContext >>>>>>>>> The CarbonContext is designed for normal tenants to retrieve >>>>>>>>> information from the Carbon runtime. In the super tenant mode, for >>>>>>>>> this to >>>>>>>>> work the relevant data has to be set so that tenants can retrieve >>>>>>>>> information using the CarbonContext. >>>>>>>>> >>>>>>>>>> However as Malintha has mentioned, there are some bugs when >>>>>>>>>>> certain super-tenant related tasks are logged, which has not been >>>>>>>>>>> observed >>>>>>>>>>> for tenant-wise tasks. This bug will be fixed with 4.3 release. >>>>>>>>>>> >>>>>>>>>>> Thanks. >>>>>>>>>>> >>>>>>>>>>> /Gayashan >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Jul 22, 2014 at 3:29 PM, Dilini Muthumala < >>>>>>>>>>> dil...@wso2.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> Would like to know, how to $subject. >>>>>>>>>>>> >>>>>>>>>>>> I tired with, >>>>>>>>>>>> >>>>>>>>>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); >>>>>>>>>>>> >>>>>>>>>>>> which returned -1, as the tenant id. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Dilini >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Dilini Muthumala* >>>>>>>>>>>> Software Engineer, >>>>>>>>>>>> WSO2 Inc. >>>>>>>>>>>> >>>>>>>>>>>> *E-mail :* dil...@wso2.com >>>>>>>>>>>> *Mobile: *+94713 400 029 >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> Dev mailing list >>>>>>>>>>>> Dev@wso2.org >>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Gayashan Amarasinghe* >>>>>>>>>>> Software Engineer | Platform TG >>>>>>>>>>> WSO2, Inc. | http://wso2.com >>>>>>>>>>> lean. enterprise. middleware >>>>>>>>>>> >>>>>>>>>>> Mobile : +94718314517 >>>>>>>>>>> Blog : gayashan-a.blogspot.com >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Dev mailing list >>>>>>>>>>> Dev@wso2.org >>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *Asanka DissanayakeSoftware Engineer* >>>>>>>>>> *WSO2 Inc. - lean . enterprise . middleware | wso2.com >>>>>>>>>> <http://wso2.com/>* >>>>>>>>>> >>>>>>>>>> *email: asan...@wso2.com <ruch...@wso2.com>, blog: >>>>>>>>>> cyberwaadiya.blogspot.com >>>>>>>>>> <http://cyberwaadiya.blogspot.com>, asankastechtalks.wordpress.com >>>>>>>>>> <http://asankastechtalks.wordpress.com> mobile: +94 71 8373821* >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> >>>>>>>>> *Asanka DissanayakeSoftware Engineer* >>>>>>>>> *WSO2 Inc. - lean . enterprise . middleware | wso2.com >>>>>>>>> <http://wso2.com/>* >>>>>>>>> >>>>>>>>> *email: asan...@wso2.com <ruch...@wso2.com>, blog: >>>>>>>>> cyberwaadiya.blogspot.com >>>>>>>>> <http://cyberwaadiya.blogspot.com>, asankastechtalks.wordpress.com >>>>>>>>> <http://asankastechtalks.wordpress.com> mobile: +94 71 8373821* >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Dev mailing list >>>>>>>>> Dev@wso2.org >>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> *Kasun Gajasinghe*Senior Software Engineer, WSO2 Inc. >>>>>>>> email: kasung AT spamfree wso2.com >>>>>>>> linked-in: http://lk.linkedin.com/in/gajasinghe >>>>>>>> blog: http://kasunbg.org >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Dev mailing list >>>>>>>> Dev@wso2.org >>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Dilini Muthumala* >>>>>>> Software Engineer, >>>>>>> WSO2 Inc. >>>>>>> >>>>>>> *E-mail :* dil...@wso2.com >>>>>>> *Mobile: *+94713 400 029 >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Dilini Muthumala* >>>>>> Software Engineer, >>>>>> WSO2 Inc. >>>>>> >>>>>> *E-mail :* dil...@wso2.com >>>>>> *Mobile: *+94713 400 029 >>>>>> >>>>>> _______________________________________________ >>>>>> Dev mailing list >>>>>> Dev@wso2.org >>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Sagara Gunathunga >>>>> >>>>> Senior Technical Lead; WSO2, Inc.; http://wso2.com >>>>> V.P Apache Web Services; http://ws.apache.org/ >>>>> Linkedin; http://www.linkedin.com/in/ssagara >>>>> Blog ; http://ssagara.blogspot.com >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Dilini Muthumala* >>>> Software Engineer, >>>> WSO2 Inc. >>>> >>>> *E-mail :* dil...@wso2.com >>>> *Mobile: *+94713 400 029 >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> Dev@wso2.org >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> >>> *Kasun Gajasinghe*Senior Software Engineer, WSO2 Inc. >>> email: kasung AT spamfree wso2.com >>> linked-in: http://lk.linkedin.com/in/gajasinghe >>> blog: http://kasunbg.org >>> >>> >>> >> >> >> >> -- >> *Dilini Muthumala* >> Software Engineer, >> WSO2 Inc. >> >> *E-mail :* dil...@wso2.com >> *Mobile: *+94713 400 029 >> > > > > -- > > *Kasun Gajasinghe*Senior Software Engineer, WSO2 Inc. > email: kasung AT spamfree wso2.com > linked-in: http://lk.linkedin.com/in/gajasinghe > blog: http://kasunbg.org > > > > _______________________________________________ > Dev mailing list > Dev@wso2.org > http://wso2.org/cgi-bin/mailman/listinfo/dev > >
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev