[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] Sending crendentials with every request
|
Hi Peter,
Not completely sure I understand what you are wanting to do, but you
could look at overriding these methods:
1. On service consumer/proxy, all rpc calls go through:
org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject.sendCallRequest(RemoteServiceRegistrationImpl,
IRemoteCall)
to asynchronously send message for remote invoke. As part of this impl
of this, the following method is called:
sendSharedObjectMsgTo(remoteRegistration.getContainerID(),
SharedObjectMsg.createMsg(CALL_REQUEST, request));
Note the CALL_REQUEST is a String == "handleCallRequest"
2. On service impl/host side there is this method which gets called
when CALL_REQUEST is received:
org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject.handleCallRequest(Request)
This ends up executing the request, and calling this method to send
response back:
org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject.sendCallResponse(ID,
Response)
which calls this method to construct and send message:
sendSharedObjectMsgTo(responseTarget,
SharedObjectMsg.createMsg(CALL_RESPONSE, new
Response(response.getRequestId(), getSerializableException(e))));
Note the CALL_RESPONSE is String == "handleCallResponse"
3. On service consumer/proxy this method is then called:
org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject.handleCallResponse(Response)
If you want to add to what's sent in every rpc, you could add to the 1
(what client sends) and to 2 (what server received and how processes it)
by adding your meta-data to the Request instance that's sent (has to be
Serializable of course).
Does that help?
Thanks,
Scott
On 3/20/2020 1:14 AM, Peter Hermsdorf wrote:
Hi everyone,
I'm looking for a way of sending user credentials implicitly with
every remote service request.
Background: we are migrating our RCP application to RAP. That means,
multiple users are using one instance of a remote service
concurrently. (the service instance is injected via DS)
Some of these service request are depending on the user calling the
service on server side and I don't want to pollute my API by passing
the username as parameter in the service request. (that would be the
last option ...)
Any ideas or examples on how to accomplish this?
We are using the ECF generic server. I've looked into using
ISharedObjectContainerClient.setConnectInitiatorPolicy but as the name
states, that is only used when initially connecting to the server.
Thank you and all the best,
Peter
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/ecf-dev