Hi Kun, Xiao and Yang,
    Thanks very much for your kindly help. Based on your suggestions and
example code, I solve the problem of carrying each user's credential on
each rpc request, and extracting the user's credential from each rpc
request in server side. Thanks again.
Best regard,
    Min Yao

On Thu, Jun 16, 2016 at 3:12 PM, Kun Zhang <[email protected]> wrote:

> It is thread-safe because stub is immutable, and each withInterceptor()
> creates a new stub.
>
> I wrote up some example:
> https://gist.github.com/zhangkun83/61b97173b87a5847bdacb986ccea818d
>
> On Thu, Jun 16, 2016 at 2:16 PM, Min Yao <[email protected]>
> wrote:
>
>> Hi Kun,
>>     Is it thread safe to use stub.withInterceptors()? In our case, a stub
>> can be used in multiple threads.
>>     And can you show me the code example of "use a ServerInterceptor to
>> extract the creds from the headers and put in the Context
>> <https://github.com/grpc/grpc-java/blob/master/core/src/main/java/io/grpc/Context.java>,
>> then the service handler can read it from the Context."?
>> Best
>>
>> On Thu, Jun 16, 2016 at 1:59 PM, Kun Zhang <[email protected]> wrote:
>>
>>> stub.withInterceptors() creates a new stub, and such stub creation is so
>>> cheap that you can do:
>>>
>>> stub.withInterceptors(...).foo(request);
>>>
>>> to attach different interceptors for individual RPCs. Of course the
>>> resulting stub is also good for multiple uses if you want.
>>>
>>> It is also the case for stub.withCallCredentials(). It's a dedicated
>>> interface for credentials, thus more user-friendly and easier to implement
>>> than interceptors.
>>>
>>> On Thu, Jun 16, 2016 at 1:45 PM, Min Yao <[email protected]>
>>> wrote:
>>>
>>>> Hi Xiao,
>>>>     The interceptor is binded to the stub, it will add the same header
>>>> to each rpc request. But we want to add different headers to the request
>>>> based on different users.
>>>> Best regard,
>>>>     Min Yao
>>>>
>>>> On Thu, Jun 16, 2016 at 12:32 PM, Xiao Hang (杭啸) <[email protected]>
>>>> wrote:
>>>>
>>>>> You can create a interceptor to do so.
>>>>> MetadataUtils.newAttachHeadersInterceptor should work for you.
>>>>>
>>>>> On Thu, Jun 16, 2016 at 12:25 PM, Min Yao <[email protected]
>>>>> > wrote:
>>>>>
>>>>>> Hi Yang and Kun,
>>>>>>      I am Min Yao from Luminate Wireless Inc.. We have used gRPC in
>>>>>> our projects. Currently we have an application case, where many users 
>>>>>> share
>>>>>> a stub to send rpc requests with per user's credential carried on request
>>>>>> metadata. It is easy to achieve this in grpc C++ since the user can add 
>>>>>> the
>>>>>> credential to ClientContext and server can fetch the credential from
>>>>>> ServerContext. However, grpc-java doesn't provide the method to add each
>>>>>> user's credential to each rpc request metadata. Is there a good way to
>>>>>> solve this problem? Thanks.
>>>>>>
>>>>>> Best regard,
>>>>>>     Min Yao
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "grpc.io" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> To post to this group, send email to [email protected].
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/d/msgid/grpc-io/CAPVo65Ds3EfE%2B%3DiN-weTTKZnVJwRKez7b_wc3g-wdh8O0EjtOA%40mail.gmail.com
>>>>>> <https://groups.google.com/d/msgid/grpc-io/CAPVo65Ds3EfE%2B%3DiN-weTTKZnVJwRKez7b_wc3g-wdh8O0EjtOA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> rocking
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> - Kun
>>>
>>
>>
>
>
> --
> - Kun
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAPVo65BGfta%3DeSy9uDjKABgAuZAMkxz3fnHVcTv3aR9QC%3DK5QA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to