Skip to content
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

Support for entryUUID attribute #14

Open
brettaufheber opened this issue Mar 24, 2022 · 4 comments
Open

Support for entryUUID attribute #14

brettaufheber opened this issue Mar 24, 2022 · 4 comments
Assignees
Labels
enhancement New feature or request good first issue Good for newcomers high-priority

Comments

@brettaufheber
Copy link
Member

brettaufheber commented Mar 24, 2022

The entryUUID attribute is currently not supported. But this operational attribute can be added easily.

java.util.UUID.fromString(unsername);
@brettaufheber
Copy link
Member Author

It has to be found out which entities are allowed to have this attribute.

@brettaufheber
Copy link
Member Author

@brettaufheber
Copy link
Member Author

brettaufheber commented Mar 31, 2023

If the attribute is not supported by default, a change to the ldif schema must be made.

See files "src/main/resources/de/aservo/ldap/adapter/*.ldif"

@peterhoepfl
Copy link
Collaborator

It is not simple to add an UUID attribute to the users in the ldap adapter, because the attribute must be immutable.
The ldap adapter works as cache, on every full sync it drops all groups and users and reads them again from crowd. But the UUID must be the same again after re-reading an group or user element from crowd.

There are two possible solutions:

Either we could implement a crowd plugin that adds an uuid attribute to every group and user in crowd upon creation.
This solution would be best from an architectural view because crowd as leading system would hold the UUID.
The implementation in the ldap crowd adapter itself would be simple, just one more attribute to read.

The other solution would be to implement an "UUID store" in the ldap crowd adapter. Everytime an object is read from crowd it would look up the UUID in a database table that holds objectidentifier (group or username) + UUID. If no entry exists an UUID would be generated and also saved in that table. That way the UUID would be stable also after deletion + rereading from crowd as long as that table is not deleted.

And just for correctness:
The method java.util.UUID.fromString(string); mentioned above requires a special UUID string representation as parameter, a username would NOT work...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers high-priority
Projects
None yet
Development

No branches or pull requests

3 participants