Hi Tanner,
The original design of the Metadata and Data Adapter interfaces provides that any matters regarding authentication, authorization and QoS are addressed to the Metadata Adapter while the Data Adapter deals exclusively with application data.
And that is why information about the client session (ie. the user) is provided to the Metadata methods but not to the Data methods.
In particular case of subscription request if you need the user's information to authorize the request or not or to tune its characteristics depending the user, the right methods to do this are:
notifyNewTables,
getAllowedMaxItemFrequency,
isModeAllowed,
getAllowedBufferSize.
And not the subscribe method of Data Adapter.
That said, if you actually need user information also in the subscribe method a possible solution is to leverage the
getItems method of the Metadata interface.
That means that all the clients subscribe to the same Item name but in the getItems method your custom implementation will return a decorated name with user information; something like 'itemName_userId' or 'itemName_userToken'.
So the subscribe Method of the Data Adapter will receive the Item name decorated and can retrieve the user information.
Please let me know if that makes sense for you.
Regards,
Giuseppe