chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Monks (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CMIS-379) Allow custom AuthenticationProvider's to be registered via dependency injection
Date Mon, 30 May 2011 16:23:48 GMT

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

Peter Monks commented on CMIS-379:
----------------------------------

The singleton I was referring to was CmisBindingFactory - it uses the classic "private constructor
+ static getInstance() method" singleton anti-pattern.

> Allow custom AuthenticationProvider's to be registered via dependency injection
> -------------------------------------------------------------------------------
>
>                 Key: CMIS-379
>                 URL: https://issues.apache.org/jira/browse/CMIS-379
>             Project: Chemistry
>          Issue Type: Wish
>          Components: opencmis-client
>    Affects Versions: OpenCMIS 0.3.0
>         Environment: n/a
>            Reporter: Peter Monks
>            Assignee: Florian Müller
>             Fix For: OpenCMIS 0.4.0
>
>
> As documented at http://incubator.apache.org/chemistry/opencmis-client-bindings.html,
the only way to configure a custom AuthenticationProvider is to specify the fully-qualified
classname as a String entry in the Session parameters Map.  This is a crude approach that
(amongst other things) makes it very difficult to implement a custom AuthenticationProvider
that itself has one or more dependencies.
> The solution is to support (but not require, obviously) the dependency injection of custom
AuthenticationProviders, either directly (can be injected directly into the CmisBindingFactory)
or indirectly (can be injected into custom client code, and than passed either as a Session
parameter or whatever to CmisBindingFactory).
> From a brief perusal it appears there are at least two ways of achieving this:
> # allow an *instance* of an AuthenticationProvider to be provided in the Session parameters
Map.  Note: this would require that the type of the Map is modified from Map<String, String>
to Map<String, Object>, but this is probably a good idea anyway as it seems unlikely
that all Session parameters, now and in the future, will always be Strings.
> # add a setter to the CmisBindingFactory that allows the AuthenticationProvider to be
configured directly.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message