jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig (JIRA) <j...@apache.org>
Subject [jira] [Commented] (JCR-3634) New method: JackrabbitRepository.login(Credentials, Map<String, Object>)
Date Tue, 30 Jul 2013 09:59:51 GMT

    [ https://issues.apache.org/jira/browse/JCR-3634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13723651#comment-13723651
] 

Michael Dürig commented on JCR-3634:
------------------------------------

> I'd rather keep the explicit workspace argument, with null for the default workspace
like in the existing login() methods.

Ack.

> And the proposed definition leaves something like login(new GuestCredentials(), Collections.singletonMap("AutoRefresh",
true)) undefined...

No it doesn't. But then my definition might be somewhat terse. Which attribute would take
precedence in your case when there is a conflict between the ones one the Credential instance
and the explicitly passed ones? That's the issue I wanted to avoid with my definition. 

> Note the last paragraph of the definition, which allows the following naive default implementation...

Good point!


                
> New method: JackrabbitRepository.login(Credentials, Map<String, Object>)
> ------------------------------------------------------------------------
>
>                 Key: JCR-3634
>                 URL: https://issues.apache.org/jira/browse/JCR-3634
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-api
>    Affects Versions: 2.7.1
>            Reporter: Michael Dürig
>
> As discussed [1] we need a way for passing session attributes on login without having
to fall back to credentials. The latter might not support credentials or not be present at
all when authentication is handled externally.
> I suggest to add the following method to JackrabbitRepository:
> /**
>  * Equivalent to <code>login(credentials, workspace)</code> where
>  * <ul>
>  *     <li><code>workspace = attributes.get(ATT_WORKSPACE_NAME)</code>,</li>
>  *     <li><code>credentials</code> carry all and only the attributes
passed
>  *     through the <code>attributes</code> map.</li>
>  * </ul>
>  *
>  * @param credentials  the credentials of the user
>  * @param attributes   the attributes to put into the session
>  * @return a valid session for the user to access the repository.
>  * @throws javax.jcr.LoginException  if authentication or authorization for the
>  *     specified workspace fails.
>  * @throws javax.jcr.NoSuchWorkspaceException  if the specified workspace is not recognized.
>  * @throws javax.jcr.RepositoryException  if another error occurs.
>  */
> Session login(Credentials credentials, Map<String, Object> attributes);
> See also OAK-803 for some more background.
> [1] http://markmail.org/message/lwhpglehee3jgpip

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message