this is intentional: the "service protocol" or interface is "hardened"
again getattr-attacks.
you can, of course define your own _rpyc_getattr and do what you want, or
just set allow_all_attrs (or something like that) in the configuration, but
then i hope you know what you're doing.
the exposed_prefixed is used only for classes that do not define their own
_rpyc_getattr, which is not the case for Service.


-----------------------------------------------------------------

*Tomer Filiba*
tomerfiliba.com     <http://www.facebook.com/tomerfiliba>
<http://il.linkedin.com/in/tomerfiliba>



On Thu, Dec 1, 2011 at 18:12, Ringo De Smet <[email protected]> wrote:

> Hello,
>
> I tried to make my exposed service methods private, by defining:
>
> config = dict(exposed_prefix = '_exposed_')
>
> However, since I'm subclassing Service which has the method _rpyc_getattr,
> an invocation to _access_attr (for _handle_get_attr) ends up invoking the
> _rpyc_getattr method and the code path will not end up in _check_attr and
> not use my custom prefix. The method Service._rpyc_getattr has the prefix
> hardcoded to "exposed_".
>
> Is this intentional?
>
> I worked around it by overriding the _rpyc_getattr method in my Service
> subclass to check for '_exposed_', but I would very much like to use the
> Connection configuration for this.
>
> Ringo
>

Reply via email to