Backwards incompatible Security API changes #13852
Replies: 8 comments
-
For the second point, there are 2 general approaches to security plugins:
Generally, I would choose the second one as I rather see failures than allow stuff through, but that requires keeping up with new SPI methods. |
Beta Was this translation helpful? Give feedback.
-
Note that we've been making many changes to security lately, but generally the SPI and security APIs should be stable. Until the recent changes, most of the changes were adding new access control checks. |
Beta Was this translation helpful? Give feedback.
-
@electrum That's correct, however every new access control check currently is an update to the API which defaults to deny. For example recently, I dont like extending from AllowAllAccessControl for obvious reasons. I want the default to be deny, but I need to have a system operator to have the possibility to fix this by policy rather then to have a new release of its security component as a requirement. So I guess what I am arguing for (as one of the options) is to have a more generizable approach. Something along the lines of:
so it could be something like
The "default" in the interface could then fallback to the method mentioned above instead of a straight out deny. This would allow a plugin [OpenPolicyAgent, Ranger] to override the method and for example implement a DSL without requiring a full redeploy of the plugin and keep the current API intact. What do you think? |
Beta Was this translation helpful? Give feedback.
-
@bolkedebruin if I understand your proposal correctly, you are proposing to replace I am not convinced this is the right approach in general (it makes new implementations harder to understand and to implement), but if you want to try this route, you can give it a try. I would start with implementing an |
Beta Was this translation helpful? Give feedback.
-
@findepi No I am not exactly proposing that. I am proposing that for So not replacing, but rather complementary. Makes sense? |
Beta Was this translation helpful? Give feedback.
-
error on my part, but generally
I am still not convinced such a general API is useful in a general case. I don't expect many implementations that would be DSL-backed and made "useful use" of such an API. In the case we determine we want to have such an API, we should validate this approach solves your problem first (POC). |
Beta Was this translation helpful? Give feedback.
-
@findepi let's see. I'm not sure if a proxy class and dynamic dispatch is cleaner and easier to understand tbh. But I am open for options. |
Beta Was this translation helpful? Give feedback.
-
I agree, I am sure it is not. I am just trying to be helpful, suggesting other options. |
Beta Was this translation helpful? Give feedback.
-
Hi All,
@kokosing @martint
Maintainer of the Ranger plugin here. I just updated the plugin to support Presto 331 as many backwards incompatible changes happened between 317 and 331. This commit (#3030), part of 332, also introduces a change in the Security API that makes it backwards incompatible. I'm starting to feel a bit like chasing a moving target.
Ranger and probably others, like Open Policy Agent, follow a different release cycle than Presto. Given that Presto obviously also addresses security concerns in its releases it is pretty tough to align both, but nevertheless important. I see 3 options (or a combination of them):
What are your thoughts?
Beta Was this translation helpful? Give feedback.
All reactions