[ 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