Hi
Yes, there is a bug/issue under here ….
The authentication service is being asked to delete a user.
In the alfresco implementation, the user will be deleted.
In your implementation you need a DAO that supports deletes, ignores deletes or throws an exception, …, when delete user is called through the API. You seem to be mixing one authentication system with the DAO for another. If you want users deleted via alfresco you also need to implement your own DAO. The DAO is trying to delete an alfresco user that does not exist. The AuthenticationComponent and DAO go as a pair.
It is possible the AuthenticationService should be able to report if it should delete users - update etc. Or the PersonService should be the only one called (and it delete the user if appropriate). Both ways, some more meta data is required about the capabilities of the service …
People are created on demand (not users). People are distinct from users: the user information holds just the user id and authentication info - no first name etc. The two are linked using the userid. People are part of the repository, but authentication, and user information, can be anywhere.
Create people on demand is there for authentication systems that already have users etc, and you do not want to pre-populate the people, so someone can log in, and get a default person entry. It has drawbacks and is there for convenience. For example, you will only be able to assign permissions to the userids of people who have logged in at least once.
I hope this helps.
Regards
Andy