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

Reply via email to