-
Notifications
You must be signed in to change notification settings - Fork 6k
SEC-2201: Add ability to implement a custom Sid #2428
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
stanislav bashkirtsev said: I could even help with writing docs covering this functionality. |
Rob Winch said: First, my sincere apologies about the delays in responding to this. I have some feedback on the PR submitted.
|
stanislav bashkirtsev said:
|
Rob Winch said: Thank you for your fast response.
I mean that Sid is a core interface to Spring Security. Due to the changes made in this PR, if custom implementations of Sid exist, then the code would no longer compile (the custom implementations would not have the newly added methods on it). I think we might be able to reach a middle ground that remains passive and allows you to achieve your custom requirements.
The suggested changes minimize the changes for Spring Security and still allow you to meet your custom requirements.
Please let me know if this will let you accomplish your goals. Note that at the moment these changes are not high on my priority list, but if you are able to send an updated PR with these changes I would be happy to merge them. I promise much faster responses in the future (again sorry about that). I think assuming there is sufficient Javadoc we would not need updates to the reference for these changes either. |
stanislav bashkirtsev said:
If we don't reach an agreement on this, I'll try to create a PR with the option you choose. It's still better than using a patched version of SS :) |
Rob Winch said:
If there is an interface that is public people will use it. You may not have been able to get it to work with the provided jdbc acl support. However, that doesn't mean that others haven't been able to get something to work. Additionally, people are likely to implement their on acl support. One example comes to mind is the UserSid example you provided which implements Sid. A very quick search of github shows quite a few examples of others implementing the Sid interface. Of course my search is not perfect and only shows the publicly available implementations of Sid on github. I'm quite confident that after over 6 years of the Sid interface existing, if we could look in other public / private corporate repositories we would find many other examples.
The current PR is non passive, so it is really a no go. I am all about ensuring we enable these use cases, but this is not something I see provided within the framework itself.
This sounds good. I will keep an eye out for the PR. You might mention it on the JIRA as my github notifications can get out of control and I might miss it. PS: One thing to note that is lacking in our current ACL support is that you must do the checks after the results come back from the database. This causes all sorts of problems when using paging for large data sets. I am currently interested in investing access control support with Spring Data JPA (i.e. think automatically updates the query based upon access control). Eventually we would extend support for other Spring Data implementations. For more information, see SEC-2409 |
Rob Winch said: Moved to 4.0.x Backlog until PR is available |
stanislav bashkirtsev said: We at last have sent you a new version of the change as you asked: PR #115. I'm closing the original one as it's obsolete. |
Rob Winch said: Thank you for the updates. I will take a look at this next week. |
Mikhail Stryzhonok said: We have updated pull request. Unit tests and simple example were added. |
stanislav bashkirtsev (Migrated from SEC-2201) said:
From time to time people need to implement a custom Sid. Searches on the internet show that (see links below).
In most cases these people needed to support Groups of Sids. My case was similar. I agree that in most situations people don't need this, but additional flexibility for complicated situations would be great.
The pull request is waiting there for a year, but no one even commented there.
The change is very simple:
This pull request doesn't actually change anything, the logic stays the same, but flexibility is added.
Here are examples of people asking for this flexibility:
The text was updated successfully, but these errors were encountered: