[ 
http://jira.codehaus.org/browse/MNG-4602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=249018#action_249018
 ] 

David Boden commented on MNG-4602:
----------------------------------

It's all changed in Maven 3 with the introduction of Aether for repository 
management. The fix that I mentioned above isn't strategic for Maven 3 and, 
because we've already upgraded to Maven 3, I propose to fix it in a different 
way. In Maven 3 the server authentication details are read from settings.xml in:

Project: maven-core Method: org.apache.maven.DefaultMaven.newRepositorySession( 
MavenExecutionRequest request )

To get the LoginContext or CallbackHandler configuration into settings.xml 
under the <server/> tag, I'd need to create a new version of: 
http://maven.apache.org/xsd/settings-1.0.0.xsd As a quick-fix, I could just add 
the configuration to the <configuration/> tag under <server/>. It would be a 
better change to add the CallbackHandler configuration to the Authentication 
class. That way, the CallbackHandler could be used only when authentication is 
required. If I make a call to the CallbackHandler within newRepositorySession 
then I'll have to call every configured callback handler and generate a 
username and password. More efficient to leave the call until later so that 
only the server definitions that are being used result in a CallbackHandler 
call. That would require changing the 
org.sonatype.aether.repository.Authentication class in the aether-api module.

I'll then have to work out (probably by using a debugger) where the 
Authentication.getUsername() is called and see how many places need to be 
upgraded to support a call out to a CallbackHandler.

> Allow pluggable authentication (using JAAS ?) so that the username and 
> password to connect to a deployment repository can be generated by a Single 
> Sign On-enabled client
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-4602
>                 URL: http://jira.codehaus.org/browse/MNG-4602
>             Project: Maven 2 & 3
>          Issue Type: New Feature
>          Components: Artifacts and Repositories, Settings
>            Reporter: David Boden
>            Priority: Minor
>
> The username and password used to authenticate with the remote repository 
> during deployment are stored in the user's settings.xml under the <servers/> 
> structure. This structure allows a username and password to be specified, or 
> for a .ssh private key to be specified.
> It does not allow for pluggable single sign on, where a Java module (perhaps 
> a JAAS LoginModule) is available on the client to generate a token in place 
> of a password. Many corporates use this technique for other web applications, 
> generating an LDAP token from the user's PC and verifying it against an LDAP 
> server on the server side. It adds security by removing the need to pass the 
> user's password over the wire.
> This Jira is a request for a pluggable entry point for this single sign on 
> module, perhaps by specifying a class name in the <server/> structure or by 
> setting a system property. The solution could either define a new interface 
> which Authentication Providers must implement or can use existing interfaces 
> from JAAS, (Http) Authenticator or other frameworks.
> Please feel free to move this item to the "Maven Wagon" component if you feel 
> that's the best place to implement the feature. Alternatively, please also 
> feel free to move to the generic "Maven 2&3" component if you think that the 
> feature has wider scope than just deployment; perhaps to also authenticate 
> using Single Sign On with an internal company's repository when *downloading* 
> artifacts (as well as uploading).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to