hi

sure... that would also be an option... but i would be
equally fine to extend the API with something like

@CheckForNull
<T> T getAuthorizable(@Nonnull String id, @Nonnull Class<T>
authorizableClass)
throws AuthorizableTypeException


that would be convenient as the expected type of the authorizable
(user or group) is quite often known.

@timothee, feel free to request an improvement in JIRA.

kind regards
angela


On 26/11/14 19:02, "Tobias Bocanegra" <[email protected]> wrote:

>Hi,
>
>On Wed, Nov 26, 2014 at 2:41 AM, Angela Schreiber <[email protected]>
>wrote:
>> Hi Timothee
>>
>> I don't see where this exception would be thrown during regular
>> calls to the JR user management API.
>>
>> UserManager#getAuthorizable doesn't allow to pass a the desired
>> type nor do specific methods exist to retrieve a user or group.
>>
>> So, I am not totally sure how this method fits into the current
>> API.... IMO it would only make sense to have it if we at the same
>> time introduce a new method like
>>
>> <T> T getAuthorizable(@Nonnull String id, Class<T> authorizableClass)
>> throws AuthorizableTypeException
>>
>
>I think Tim's problem is that he wants to either create a new user or
>group, but the "opposite" authorizable with the same name already
>exist.
>
>I think it's easiest to include a:
>  isUser() to the AuthorizableExistsException exception.
>
>so the code could test:
>
>try {
>  createUser(userId);
>} catch (AuthorizableExistsException e) {
> if (!e.isUser()) {
>    // group with 'userid' already exists
> }
>
>regards, toby
>
>> or something similar.
>>
>> kind regards
>> angela
>>
>>
>>
>> On 20/11/14 15:45, "Timothée Maret" <[email protected]> wrote:
>>
>>>Hi,
>>>
>>>
>>>In a project, we have a utility method that allows to get or create an
>>>authorizable of a given type (user or group).
>>>In case the method can't return an authorizable of the required type
>>>(for
>>>instance when requiring a group with id = X and a user with id = X
>>>already exists), then a
>>>org.apache.jackrabbit.api.security.user.AuthorizableExistsException is
>>>thrown.
>>>
>>>
>>>An AuthorizableExistsException does not precisely identify the root of
>>>the error and maybe an exception of type AuthorizableMissmatchException
>>>would be better.
>>>Of course, we could add this exception in our project, however I
>>>thinking
>>>it would be best to avoid adding extension of the JCR APIs at a project
>>>level.
>>>Therefor, would it make sense to add the exception
>>>
>>>
>>>org.apache.jackrabbit.api.security.user.AuthorizableMissmatchException
>>>
>>>
>>>to the Jackrabbit API ?
>>>
>>>
>>>This exception would be thrown in any case (currently none in
>>>Jackrabbit)
>>>where Jackrabbit can't return an Authorisable of a given type.
>>>
>>>
>>>Regards,
>>>
>>>
>>>Timothee
>>>
>>

Reply via email to