Join GitHub today
Allow use of non-numeric (e.g. UUID) values for ObjectIdentity.getIdentifier() #4424
This PR fixes #1224.
This took a while to get ready for a PR as when I got round to writing the tests properly, there was a problem with how HSQLDB was handling converting UUID to varchar so I had to submit a fix for that which came out in HSQLDB 2.4.0 earlier this year.
The change allows for the fully qualified class name of the ObjectIdentity identifier type to be specified in the acl_class table and a ConversionService can be provided to BasicLookupStrategy to convert from String to the actual identifier type.
There are the following other changes:
Other things to call out:
referenced this pull request
Jun 28, 2017
Hello @pwheel , there is still one class needs to be modified, it is JdbcAclService. If you look into its findChildren method (which is used by JdbcMutableAclService), you should see this
And this is the obj_id per DEFAULT_SELECT_ACL_WITH_PARENT_SQL
So because we are using Uuid this cast will cause a problem.
Thanks @truongvanluan good catch. I updated some of the tests to cover this & confirm was a problem. I've done a little bit of refactoring as needed to use some of the logic in to classes now, so created a utility class AclClassIdUtils to handle it.
I had to merge in master as had compile time errors due to Spring 5 snapshot dependencies, & had to do some updates for checkstyle & Apache licence too.
Commit history isn't so clean now… I can squash / rebase again but wanted to push this up for feedback first. Hope that's alright!
Hi thanks for this, been waiting a while for this to be implemented so been keen to try it out...
However, I'm still getting an error in
The offending method in
Thanks for response. I'm using java config rather than xml config. My issue with wiring in
I'd like to do the following but this won't compile due to the class not being public.